如何从 Facebook C# SDK 在 JsonArray 中执行 linq 查询
本文关键字:JsonArray 执行 linq 查询 SDK Facebook | 更新日期: 2023-09-27 18:35:30
我正在尝试使用Facebook C# SDK在朋友JsonArray中执行linq查询。所以,我尝试:
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"));
但是在最后一行中,我收到以下编译错误:
"'Facebook.JsonArray'不包含'Where'的定义,最好的扩展方法重载'System.Linq.ParallelEnumerable.Where(System.Linq.ParallelQuery, System.Func)'有一些无效的参数"
那么,我该怎么做呢?
你不能使用Where<JsonObject>
,因为JsonArray
是IEnumerable<JsonValue>
,而不是IEnumerable<JsonObject>
。
另一方面,您不必使用扩展方法指定类型Where<>
:
var friends = data.Where(d => d["name"].ToString().StartsWith("D"));
这将使 lambda 表达式中的变量d
JsonValue
。
如果您只想迭代JsonObject
元素,则必须在Where
之前添加OfType
方法(但我还没有真正测试它是否有效):
var friends = data.OfType<JsonObject>().Where(d => d["name"].ToString().StartsWith("D"));