2014-01-12 7 views
0

У меня есть класс, называемый человеком, со строкой, называемой именем, и именами, называемыми int. Затем у меня есть список людей под названием «PS4». Я хочу заказать список ps4 у людей с наибольшим количеством побед.Сортировка списка с использованием делегатов

это не работает.

PS4.Sort(delegate(Person c1, Person c2) { return c1.Wins.CompareTo(c2.Wins); }); 

является делегатом справа? или мне нужно использовать orderby или что-то еще?

ответ

2

Это правильно, и вы можете упростить его с утверждениями лямбда:

PS4.Sort((c1,c2) => c1.Wins.CompareTo(c2.Wins)); 
+0

хмм, оно не кажется, заказать его для меня. –

+2

почему? вы попробовали? –

0

использование:

PS4 = PS4.OrderBy(z=> z.wins).ToList(); 
+0

Обратите внимание, что это создает другой, второй объект List. List.Sort() позволяет избежать создания другого объекта List и, следовательно, предпочтительнее. – elgonzo

+0

Вы имеете в виду после этого кода, PS4 остается несортированным? – user3185569

+0

Актуальность вашего ответа зависит от конкретного кода приложения. Вы назначаете новый список переменной PS4 ** **. Исходный объект списка (который может быть указан в другом месте в коде) не сортируется. – elgonzo

Смежные вопросы