我有一个带有一个名为“layer”的整数变量的类,有一个这些类的列表,我想按升序排序。我该怎么做呢?我已经尝试了一种或两种我在这里找到的LINQ方法,但无济于事。
答案 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);
答案 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); });
只需将实体替换为列表中的任何对象,并将图层替换为您要排序的任何对象。