2016-03-12 3 views
-1

Я хочу, чтобы оператор foreach перебирал список. То, что я хочу достичь, состоит в том, чтобы убедиться, что элементы с самым низким рангом сначала загружаются, но следующий код не работает. Я знаю, это может быть потому, что orderby не сортируется на месте. каков альтернативный способ удостовериться, что маленькие ранги выбираются сначала в foreach?OrderBy в цикле foreach не работает

foreach(var item in Collection.Where(item => Valid(itemID)).OrderBy(item => item.Rank))) 
{ 
    doWork(item);`` 
} 

Update: 'Ранг' является Enum

public enum Rank 
{ 
A = 1, 
B = 2 
} 
+3

Как вы знаете, это не работает? Предоставьте свои данные и результаты. Кстати, у вас есть дополнительная скобка в конце! – dotctor

+0

Не знаете, что такое логика, но, может быть, 'OrderByDescending'? – GregoryHouseMD

+0

@Caramiriel 'Rank' является' enum' –

ответ

0

Try:

foreach(var item in Collection.Where(item => Valid(itemID)).OrderBy(item => item.Rank.Value))) 
{ 
    doWork(item); 
} 
Смежные вопросы