C# · 12月 26, 2021

如何通过属性值对LINQ C#中的XML进行排序?也是MVC

(使用最新的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进行排序并使其正确呈现吗?

解决方法 编辑:好的,我想你只想要: 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”));