在将XML转换为数组之前,可以按属性对其进行排序
本文关键字:属性 排序 转换 XML 数组 在将 | 更新日期: 2023-09-27 18:25:22
这是我当前的代码,它从xml中获取元素并将其放入数组中。但它只是按照读取的顺序(从上到下)
using System.Xml;
using System.Xml.Linq;
// XML Path
var doc = XDocument.Load("C:/Scripts/example.xml");
// Node
string[] picks = doc.Descendants("pick").Select(element => element.Value).ToArray();
我想知道在将数组转换为数组时,是否可以按属性(在本例中为"order")对数组进行排序。所需输出为{Gragas、Draven、Ryze、Shen、Shyvanna、…}
这是我的xml:
<championSelect>
<blue>
<pick order="1">Gragas</pick>
<pick order="4">Shen</pick>
<pick order="5">Shyvanna</pick>
<pick order="8">Garen</pick>
<pick order="9">Karthus</pick>
</blue>
<red>
<pick order="2">Draven</pick>
<pick order="3">Ryze</pick>
<pick order="6">Ahri</pick>
<pick order="7">Annie</pick>
<pick order="10">Brand</pick>
</red>
我玩OrderBy()和OrderByDescending()时运气不好
使用OrderBy
扩展方法
string[] picks = doc
.Descendants("pick")
.OrderBy(element => Int32.Parse(element.GetAttribute("order").Value))
.Select(element => element.Value)
.ToArray();