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;

有些东西不起作用。任何人都有一个想法,我不必把所有数据都放在一个数组中,对数组进行排序,然后给出第一个元素(因为这是我唯一剩下的想法,但似乎有点太多了)

c#xml显示最高值

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)));