2016-03-12 163 views
-1

我希望foreach語句遍歷列表。我想要實現的是確保最低級別的項目被首先獲取,但下面的代碼不起作用。我知道這可能是因爲orderby不是就地排序。什麼是另一種方式來確保小規模隊伍首先被取得?Foreach循環中的OrderBy不起作用

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

更新: '排名' 是Enum

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

你怎麼知道它是不是工作?提供您的數據和結果。順便說一句,你最後有一個額外的括號! – dotctor

+0

不知道背後的邏輯是什麼,但也許'OrderByDescending'? – GregoryHouseMD

+0

@Caramiriel'Rank'是一個'enum' –

回答

0

嘗試:

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