C#按名称和坐标排序对象列表

时间:2017-07-02 21:28:07

标签: c# list sorting

设置场景,我有一个对象列表。 每个对象都包含一个名称,以及一个由x坐标和y坐标组成的点。

我目前将列表排序为按字母顺序对对象的名称进行分组。现在我希望通过降序或升序x坐标来排序相同的命名对象。

  • 现在列表中有什么内容:

    • BP301(5,6)
    • BP301(-3,2)
    • BP301(0,4)
    • BP301(5,6)
    • BP302(10,7)
    • BP302(10,7)
    • GP001(8,3)
  • 我想在列表中找到什么:

    • BP301(-3,2)
    • BP301(0,4)
    • BP301(5,6)
    • BP301(5,6)
    • BP302(10,7)
    • BP302(10,7)
    • GP001(8,3)

希望我的问题很清楚

1 个答案:

答案 0 :(得分:2)

你考虑过使用LINQ吗?

没有代码的粗略示例,所以我假设IEnumerable<T>兼容列表:

var sortedList = list.OrderBy(i => i.Name).ThenBy(i => i.X).ThenBy(i => i.Y);