foreach循环中的OrderBy不起作用

时间:2016-03-12 11:55:46

标签: c# .net linq

我希望foreach语句遍历列表。我想要实现的是确保首先获取排名最低的项目,但以下代码不起作用。我知道这可能是因为orderby不是就地排序。什么是确保在foreach中首先获取小排名的替代方法?

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

更新: '排名'是Enum

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

1 个答案:

答案 0 :(得分:0)

尝试:

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