如何使用 LINQ 迭代 JsonArray?

Chr*_*ton 2 c# linq jsonnode system.text.json

我有 JSON:

{
    "dimensions": [
        {
            "name": "dim1"
        },
        {
             "name": "dim2"
        },
        {
             "name": "dim3"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

加载到 JsonObject 中

JsonObject root = JsonNode.Parse(jsonString)?.AsObject();
Run Code Online (Sandbox Code Playgroud)

我希望使用 LINQ 迭代 JsonArray

var list =  root["dimensions"].GetEnumerator().Select(p => p["name"].GetValue).ToArray();
Run Code Online (Sandbox Code Playgroud)

但出现错误

CS1061:“IEnumerator <JsonNode?>”不包含“Select”的定义,并且找不到接受“IEnumerator <JsonNode?>”类型的第一个参数的可访问扩展方法“Select”(您是否缺少 using 指令或装配参考?)

我在谷歌上搜索 JsonNode 和 LINQ 时几乎找不到什么。也许还不支持?

Gur*_*ron 5

AsArray在返回的节点上使用jsonNode["dimensions"]

var list = jsonNode["dimensions"].AsArray()
    .Select(node => node["name"].AsValue().GetValue<string>()) // or node["name"].ToString()
    .ToArray();
Run Code Online (Sandbox Code Playgroud)