如何从FacebookC#SDK在JsonArray中执行linq查询?
我正在尝试使用Facebook C#SDK在friends JsonArray中执行linq查询。因此,我尝试:如何从FacebookC#SDK在JsonArray中执行linq查询?,c#,linq,facebook-c#-sdk,C#,Linq,Facebook C# Sdk,我正在尝试使用Facebook C#SDK在friends JsonArray中执行linq查询。因此,我尝试: var facebook = new FacebookWebClient(); dynamic facebookFriends = facebook.Get("me/friends"); JsonArray data = facebookFriends.data; var friends = data.Where<JsonObject>(d => d["nam
var facebook = new FacebookWebClient();
dynamic facebookFriends = facebook.Get("me/friends");
JsonArray data = facebookFriends.data;
var friends = data.Where<JsonObject>(d => d["name"].ToString().StartsWith("D"));
var facebook=new facebook网络客户端();
DynamicFaceBookFriends=facebook.Get(“我/朋友”);
JsonArray data=facebookFriends.data;
var friends=data.Where(d=>d[“name”].ToString().StartsWith(“d”);
但在最后一行中,我得到了以下编译错误:
“'Facebook.JsonArray'不包含'Where'的定义和最佳扩展方法重载'System.Linq.ParallelEnumerable.Where(System.Linq.ParallelQuery,System.Func)'具有一些无效参数”
那么,我该怎么做呢?你不能在哪里使用因为JsonArray
是IEnumerable
,而不是IEnumerable
另一方面,您不必使用Where
扩展方法指定类型:
var friends = data.Where(d => d["name"].ToString().StartsWith("D"));
这将使lambda表达式中的d
变量为JsonValue
如果您想迭代JsonObject
元素,只需在Where
之前添加of type
方法(但我还没有真正测试它是否有效):
var friends=data.OfType().Where(d=>d[“name”].ToString().StartsWith(“d”);
使用第一个选项时,我在“d[“name”]”中遇到以下编译错误:“无法将带[]的索引应用于“object”类型的表达式”。第二种方法有效=D
var friends = data.OfType<JsonObject>().Where(d => d["name"].ToString().StartsWith("D"));