2010-02-05 29 views
6

(使用最新的MVC 2 RC 2)我试图通过元素的属性的值进行排序在LINQ(C#)一些XML ...如何在属性值中对LINQ C#中的XML进行排序?此外MVC

var sites = from s in xDoc.Element("sites").Elements("site") 
orderby s.Attribute("name") 
select s; 

但是当我通过这个我查看我获得例外:

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进行排序并使其正确呈现?

回答

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")); 
+0

对不起,是的,你是正确─我抄错片代码到我的文章!哎呀。我现在纠正了它。 –

+0

'site'变量是我传入我的视图的值,例如:return View(site); –

+0

@Matt:右键 - 编辑。 –

相关问题