我想从我的XML文件中获取最高属性“ID”。
我的代码:
var doc = XElement.Load("invoices.xml");
var q = (from f in doc.Element("ListOfInvoices").Elements("Invoice")
orderby f.Attributes("ID") descending
select f.Attribute("ID")).FirstOrDefault();
在我的XML文件中,其中一个发票代码可以使用,但是当例如2发票时,我有一个错误:
至少有一个对象必须实现IComparable。
答案 0 :(得分:6)
尝试将f.Attributes("ID")
投射到int
(如果是数字)或string
(如果它是这样的字母数字):
var q = (from f in doc.Element("ListOfInvoices").Elements("Invoice")
orderby (int)f.Attribute("ID") descending
select f.Attribute("ID")).FirstOrDefault();
答案 1 :(得分:1)
您必须明确地显式访问XAttribute.Value
:
doc.Element("ListOfInvoices")
.Elements("Invoice")
.Select(f => f.Attribute("ID").Value)
.OrderByDecending(a => a).FirstOrDefault();
答案 2 :(得分:1)
订单上有拼写错误。您编写了属性而不是属性。
您需要使用Value属性来获取属性值:
var q = (
from f in doc.Element("ListOfInvoices").Elements("Invoice")
orderby f.Attribute("ID").Value descending
select f.Attribute("ID").Value
).FirstOrDefault();