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

时间:2014-05-11 11:03:13

标签: c#

我使用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
}

1 个答案:

答案 0 :(得分:4)

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

将选择最大的字符串。并且“9”&gt; “77”

因此,要么使您的属性可排序(“0009”&lt;“0077”)或将它们转换为int:

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