How to sort XML in LINQ C # by attribute value? Also MVC

(Using the latest MVC 2 RC 2) I am trying to sort some XML in LINQ (C #) using an element attribute value ...

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

But when I pass this to my view, I get an exception:

 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> 

Can someone tell me how to sort XML using LINQ and display it correctly?

+6
sorting xml linq asp.net-mvc
source share
1 answer

EDIT: Ok, I think you just want:

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

Which can also be written as:

 var sites = xDoc.Element("sites") .Elements("site") .OrderBy(s => (string) s.Attribute("name")); 
+12
source share

All Articles