c#xml显示最高值
本文关键字:最高值 显示 c#xml | 更新日期: 2023-09-27 18:21:27
我完全没有想法,我的C#/LINQ/XML技能仍然很弱。也许有人可以帮我完成一个相对简单的任务,我不想围绕这个任务写一个完整的程序:
我需要在XML数据库中获得最高的客户ID,该数据库看起来有点像:
<xml>
<customers>
<customer>
<customerid>a00001</customerid>
<name>this</name>
</customer>
<customer>
<customerid>a00031</customerid>
<name>that</name>
</customer>
等等…
到目前为止,我尝试的是将我用于其他linq/xml的代码与我在这里发现的东西相结合:
var readme = XElement.Load("someXML");
int tempHigh;
var highIDs =
(from va in readme.Elements("customers").Elements("customer")
where Convert.ToInt32(va.Element("customerid").Value.Substring(2, 5)) > tempHigh
select Convert.ToInt32(va.Element("customerid").Value.Substring(2,5)));
tempHigh = Convert.ToInt32(highIDs.Element("customerid").Value);
return tempHigh;
有些东西不起作用。任何人都有一个想法,我不必把所有数据都放在一个数组中,对数组进行排序,然后给出第一个元素(因为这是我唯一剩下的想法,但似乎有点太多了)
int highestId = readme
.Elements("customers")
.Elements("customer")
.Select(cust => Convert.ToInt32(cust.Element("customerid").Value.Substring(1))
.Max();
或使用linq/xpath 组合更简洁
int id = readme.XPathSelectElements("/customers/customer/customerid").Max(cid => int.Parse(cid.Value.Substring(1)));