当前位置: 首页 > 编程语言 > C#

将FQL结果转换为自定义类?分享

时间:2023-04-10 18:49:33 C#

将FQL结果转换为自定义类?我是一个相当新的C#程序员,我在尝试将FQL结果转换为自定义类时遇到了问题......例如,我正在执行以下操作,但似乎有很多步骤......我是只是返回一个数据表,但期望结果是强类型类的集合。我很欣赏任何见解。我也愿意接受其他方法来获得类似的结果。谢谢,乍得publicclassFacebookFriends{publicstringFriendID{get;放;}publicstringFriendName{得到;放;}公共字符串PicURLSquare{得到;放;}publicstringProfileLink{get;放;}//获取当前未使用此应用程序的FB好友,以便您可以邀请他们我())而不是is_app_user";FacebookSDKInterfaceobjFQL=newFacebookSDKInterface();动态objFNU=objFQL.FBFQL(strQuery);//构造新的、格式化的、合并的数据表,以我们希望的方式存储结果DataTabledtFriendsNotUsingApp=newDataTable();dtFriendsNotUsingApp.Columns.Add("FriendID");dtFriendsNotUsingApp.Columns.Add("FriendName");dtFriendsNotUsingApp.Columns.Add("PicURLSquare");dtFriendsNotUsingApp.Columns.Add("链接");if(objFQL!=null){foreach(objFNU.data中的动态行){//将新数据行添加到新数据表数据行drRow=dtFriendsNotUsingApp.NewRow();//从原始JSON好友列表中获取各种值返回drRow["FriendID"]=row.uid;drRow["FriendName"]=row.name;drRow["PicURLSquare"]=row.pic_square;drRow["链接"]=row.link;//将新行添加到新的结果数据表dtFriendsNotUsingApp.Rows.Add(drRow);}dtFriendsNotUsingApp.DefaultView.Sort="FriendName";}IEnumerableobjFriendsListCollection=null;vartoLinq=从dtFriendsNotUsingApp.AsEnumerable()中的列表中选择新的FacebookFriends{FriendID=list["FriendID"].ToString(),FriendName=list["FriendName"].ToString(),PicURLSquare=list["PicURLSquare"].ToString(),ProfileLink=list["ProfileLink"].ToString()};objFriendsListCollection=toLinq.OrderByDescending(p=>p.FriendName);返回objFriendsListCollection;}//获取尚未使用此应用程序的FB好友我相信这可能首先会有所帮助:我从未使用过FacebookAPI,所以我只是以您的代码为例。第二:由于方法在一个类中,所以我改成了static。这样,您只需调用FacebookFriends.GetFriendsNotUsingApp()而不是newFacebookFriends().GetFriendsNotUsingApp()即可使用它。第三代码:publicclassFacebookFriends{publicstringFriendID{get;放;}publicstringFriendName{得到;放;}公共字符串PicURLSquare{得到;放;}publicstringProfileLink{get;放;}//获取当前未使用此应用程序的FB好友,以便您可以邀请他们=me())而不是is_app_user";FacebookSDKInterfaceobjFQL=newFacebookSDKInterface();动态objFNU=objFQL.FBFQL(strQuery);列出friendsToReturn=newList();if(objFQL!=null){foreach(objFNU.data中的动态行){friendsToReturn.Add(newFacebookFriends(){FriendID=row.uid,FriendName=row.name,PicURLSquare=row.pic_square,ProfileLink=row.link});}}返回friendsToReturn;}//获取尚未使用此应用程序的FB好友}希望这可以帮助。问候我也没有使用FacebookAPI或FQL的经验,但是从您的代码来看,objFNU.data似乎实现了IEnumerable,因此您可以直接使用LINQ扩展方法:publicclassFacebookFriends{publicstringFriendID{get;放;}publicstringFriendName{得到;放;}公共字符串PicURLSquare{得到;放;}publicstringProfileLink{get;放;}//获取当前未使用此应用程序的FB好友,以便您可以邀请他们=me())而不是is_app_user";FacebookSDKInterfaceobjFQL=newFacebookSDKInterface();动态objFNU=objFQL.FBFQL(strQuery);if(objFQL!=null)//你不应该在这里检查objFNU是否为null吗?{IEnumerableobjFNUdata=(IEnumerable)objFNU.data;//可能不需要显式转换returnobjFNUdata.Select(row=>newFacebookFriends(){FriendID=row.uid,FriendName=row.name,PicURLSquare=row.pic_square,ProfileLink=row.link}).OrderByDescending(p=>p.FriendName);}else{返回新列表();}}//获取尚未使用此应用程序的FB朋友}最后,这对我有用最好感谢双方,尤其是@DarmirArh帮助他实现了这一目标。以上就是C#学习教程:ConvertFQLresultstocustomclasses?如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注——试试{FacebookSDKInterfaceobjFQL=newFacebookSDKInterface();动态objFNU=objFQL.FBFQL(strQuery);if(objFNU!=null)//你不应该在这里检查objFNU是否为null吗?{IEnumerableobjFNUdata=(IEnumerable)objFNU.data;//显式转换可能不是必需的IEnumerableobjMyFriends=fromrowinobjFNUdataselectnewFacebookFriends(){FriendID=row.uid,FriendName=row.name,PicURLSquare=row.pic_square,ProfileLink=row.profile_url};objMyFriends=objMyFriends.OrderBy(p=>p.FriendName);返回objMyFriends;}else{返回新列表();}}catch(Exceptionex){returnnewList();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: