Как отсортировать XML в LINQ C # по значению атрибута? Также MVC - PullRequest
6 голосов
/ 05 февраля 2010

(используя последнюю версию MVC 2 RC 2) Я пытаюсь отсортировать XML в LINQ (C #) по значению атрибута элемента ...

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>

Может кто-нибудь сказать мне, как сортировать XML с помощью LINQ и правильно ли он отображается?

1 Ответ

12 голосов
/ 05 февраля 2010

РЕДАКТИРОВАТЬ: Хорошо, я думаю, вы просто хотите:

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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...