如何订购未打字的数组?

时间:2013-11-11 09:28:42

标签: c# .net linq

JSON:

"media$thumbnail":[
    {
     "url":"https://i1.ytimg.com/vi/gL23XCv6rek/default.jpg",
     "height":90,
     "width":120,
     "time":"00:08:11",
     "yt$name":"default"
    },
    {
     "url":"https://i1.ytimg.com/vi/gL23XCv6rek/mqdefault.jpg",
     "height":180,
     "width":320,
     "yt$name":"mqdefault"
    },
    {
     "url":"https://i1.ytimg.com/vi/gL23XCv6rek/hqdefault.jpg",
     "height":360,
     "width":480,
     "yt$name":"hqdefault"
    }
]

我的代码:

var thumbnailList = (JArray)item["media$group"]["media$thumbnail"];

我想提取"url"的最大"width"值。

我应该使用OrderByDescending(p => p.width)订购此列表,但当然我无法访问该类型值。

我该怎么办?在LINQ上有办法吗?

1 个答案:

答案 0 :(得分:1)

你得到的是JArray,你可以枚举到JToken,而JToken有一个方法SelectToken可以获得嵌套在其中的值。< / p>

使用Linq,你最终会得到类似的东西;

OrderByDescending(t => Convert.ToInt32(t.SelectToken("width")))