2017-07-02 93 views
0

設置場景,我有一個對象列表。 每個對象都包含一個名稱和一個由x座標和y座標組成的點。C#按名稱和座標排列對象列表

我目前有列表按照字母順序排列對象的名稱。現在我想要通過降序或升序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

你能告訴你現在使用存儲和整理這些對象的代碼? – Steve

回答

2

你有沒有使用LINQ考慮?

粗糙例子給出任何代碼,所以我假設的IEnumerable<T>兼容列表:

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

是的,工作,謝謝。我需要更多地關注LINQ。我對列表排序很不好。 – user3128153

+0

你可以做很多有趣的事情,按升序排序,按降序排序,組合等等。 – Lloyd