如何在不使用foreach循环的情况下获取JObject的第一个孩子



我需要得到JObject的第一个孩子。这就是我在第一次迭代后使用 foreach 循环中断暂时解决它的方式。

foreach (KeyValuePair<string, JToken> item in (JObject)json["stats"])
{
    // doing something with item
    break;
}

我想知道是否有更短的解决方案,例如json["stats"][0](但是它不是这样工作的)。

可能有几种方法,但这里有一种:

JToken prop = obj["stats"].First;

如果你知道这是一个JProperty

JProperty prop = obj["stats"].First.ToObject<JProperty>();

由于JObject实现了IDicionary<string, JToken>因此可以使用Linq扩展方法。

 IDictionary<string, JToken> json = new JObject();
 var item = json.First();

行不通吗?

(json["stats"] as JObject).Select(x =>
      {
            // do something with the item;
            return x;
      }).FirstOrDefault();

相关内容

  • 没有找到相关文章

最新更新