为什么MaxId函数在xml中总是返回9 ?

本文关键字:返回 MaxId 函数 xml 为什么 | 更新日期: 2023-09-27 18:02:49

我使用MaxId函数在我的xml文件中返回最大id,但它总是返回9,我不能用正确的id插入新记录。

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<TestTag>
    <Test Id="1" devicename="desk"  date="2012-02-01T00:00:00" username="z" />
    <Test Id="2" devicename="c"     date="2012-02-01T00:00:00" username="z"/>
    .
    .
    . 
    <Test Id="12" devicename="q"  date="2012-02-01T00:00:00" username="z"/>
    <Test Id="13" devicename="m"  date="2012-02-01T00:00:00" username="z"/>
</TestTag>

我使用这个MaxId函数:

public string MaxId()
{
    string maxNr = xd.XPathSelectElements("//TestTag/Test")
            .Max(c => (string)c.Attribute("Id"));
    return maxNr;  // it is always 9
}

为什么MaxId函数在xml中总是返回9 ?

 .Max(c => (string)c.Attribute("Id"))

将选择最大的字符串。"9"> "77"

所以要么让你的属性可排序("0009" <"0077")或转换为int:

 .Max(c => int.parse(c.Attribute("Id").Value))