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

时间:2010-02-05 16:58:10

标签: xml asp.net-mvc linq sorting

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

1 个答案:

答案 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"));