(使用最新的MVC 2 RC 2)我试图用LINQ(C#)中的一些XML对元素的属性值进行排序......
var sites = from s in xDoc.Element("sites").Elements("site")
orderby s.Attribute("name")
select s;
但是当我把它传递给我的View时,我得到了例外:
Exception Details: System.ArgumentException: At least one object must implement IComparable.
Source Error:
Line 37: </th>
Line 38: </tr>
Line 39: <% foreach (var item in Model)
Line 40: { %>
Line 41: <tr>
有人能告诉我如何使用LINQ对XML进行排序并正确渲染吗?
答案 0 :(得分:12)
var sites = from s in xDoc.Element("sites").Elements("site")
orderby (string) s.Attribute("name")
select s;
也可以写成:
var sites = xDoc.Element("sites")
.Elements("site")
.OrderBy(s => (string) s.Attribute("name"));