按变量排序c#对象列表

时间:2012-06-25 13:23:17

标签: c# list sorting int

我有一个带有一个名为“layer”的整数变量的类,有一个这些类的列表,我想按升序排序。我该怎么做呢?我已经尝试了一种或两种我在这里找到的LINQ方法,但无济于事。

3 个答案:

答案 0 :(得分:3)

var foos = new List<Foo>(); 
// consider this is your class with the integer variable called layer

var ordered = foos.OrderBy(f => f.layer);

Enumerable.OrderBy

答案 1 :(得分:1)

其他两种方法......

假设Layer在范围内......

    List<Item> list = new List<Item>();

    list.Add(new Item(10));
    list.Add(new Item(2));
    list.Add(new Item(5));
    list.Add(new Item(18));
    list.Add(new Item(1));

    list.Sort((a, b) => { return a.Layer.CompareTo(b.Layer); });

或者,您可以实现IComparable接口,这将允许您按类内部的任何内容进行排序。假设该字段始终是您想要排序的,然后只调用sort()。

答案 2 :(得分:0)

在这两种方法都不起作用之后,我做了一些研究,并提出了这个对我有用的片段:

 entities.Sort(delegate(Entity a, Entity b) { return a.layer.CompareTo(b.layer); });

只需将实体替换为列表中的任何对象,并将图层替换为您要排序的任何对象。