ahd*_*ung 5 .net c# linq json.net
Newtonsoft.Json.Linq.JObject实现IEnumerable<T>,而不是显式实现,但为什么不能这样做:
using System.Linq;
...
var jobj = new JObject();
var xxx = jobj.Select(x => x); //error
foreach(var x in jobj) { } //no error
Run Code Online (Sandbox Code Playgroud)
为什么?谢谢.
JObject实现两者IEnumerable<KeyValuePair<string, JToken>>和IEnumerable<JToken>(通过继承JContainer).
因此,您不能Select直接使用LINQ(例如),因为它不知道"扩展"的哪些可用枚举.
因此你需要先施展:
((IEnumerable<KeyValuePair<string, JToken>>) jobj).Select(x => x)
Run Code Online (Sandbox Code Playgroud)
要么:
jobj.Cast<KeyValuePair<string, JToken>>().Select(x => x)
Run Code Online (Sandbox Code Playgroud)
或者@Evk指出:
jobj.Select((KeyValuePair<string, JToken> x) => x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |