我有一个带有一个名为“layer”的整数变量的类,有一个这些类的列表,我想按升序排序。我该怎么做呢?我已经尝试过在这里找到的一两种 LINQ 方法,但无济于事。
问问题
13009 次
3 回答
5
var foos = new List<Foo>();
// consider this is your class with the integer variable called layer
var ordered = foos.OrderBy(f => f.layer);
于 2012-06-25T13:52:21.880 回答
1
还有其他几种方法...
假设层在范围内......
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()。
于 2012-06-25T14:12:45.963 回答
0
在这两种方法都不起作用之后,我做了更多的研究,并提出了这个对我有用的片段:
entities.Sort(delegate(Entity a, Entity b) { return a.layer.CompareTo(b.layer); });
只需将 Entity 替换为列表中的任何对象,然后使用您想要排序的任何对象进行分层。
于 2012-06-26T10:48:55.580 回答