C#OrderByDescending

时间:2011-09-16 10:26:28

标签: c# wpf arrays collections

如何使用OrderByDescending?

我有一个标签,圈子,像这样声明

ReadOnlyCollection<FlangeCircle> Circles

包含一个变量,类型为double的直径

我想根据diamter对它们进行排序,所以我试试

FlangeCircle<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter);

但这不会通过编译器,但以下是

var query = Circles.OrderByDescending(p => p.Diameter);

为什么会这样,如何用“正确”类型声明查询?

/斯蒂芬

4 个答案:

答案 0 :(得分:6)

变量的类型是问题:

FlangeCircle<FlangeCircle> query = ...

FlangeCircle<FlangeCircle>作为一种类型没有意义,当然不是OrderByDescending返回的内容。你几乎肯定想要:

IEnumerable<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter);

或者,如果您希望能够在ThenBy上执行ThenByDescending / query运算符:

IOrderedEnumerable<FlangeCircle> query = ...;

答案 1 :(得分:1)

这将返回一个IEnumerable,所以:

IEnumerable<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter);

答案 2 :(得分:0)

IEnumerable不应该变量吗?如在

IEnumerable<FlangeCircle> query = Circles.OrderByDescending(p => p.Diameter);

答案 3 :(得分:0)

尝试使用IEnumerable<FlangeCircle> query = ...