将IOrderedEnumerable转换为ICollection

时间:2013-10-03 10:12:42

标签: c# linq entity-framework

我想在插入数据库之前对一些随机整数的顺序进行排序。

if (integerList.Direction.Equals("ascending")) {
    integerList.Integers = integerList.Integers.OrderBy(i => i.IntegerValue);
} else {
    integerList.Integers = integerList.Integers.OrderByDescending(i => i.IntegerValue);
}

orderby和orderbydescending似乎将我的类中ICollection的整数转换为IOrderedEnumerable。任何人都可以建议如何转换排序的整数吗?

2 个答案:

答案 0 :(得分:5)

ToList()

如果我没记错的话,会为你创建一个List。继承自Collection。

答案 1 :(得分:0)

根据您的问题,我假设Integers属性的类型为ICollection<int>。添加ToList()ToArray()将结果转换为List<int>int[](均为ICollection)。

由于您无法确定数据库是按照添加顺序存储值,因此在添加到数据库之前对它们进行排序是没有意义的。相反,您应该为相应字段添加索引,并在该字段上使用ORDER BY来获取有序值。