簡體   English   中英

如何在C#中排序列表列表

[英]How can I order a list of lists of lists in C#

我實際上正在使用一個包含包含列表的列表的列表(是三組):

List<List<List<int>>> threeD = new List<List<List<int>>>();

填滿這個怪物之后,我得到了:

var threeD = [ [[18,100],[13,95]], [[12,100],[2,5],[7,45]], [[19,100]] ];

上面的列表包含三個單獨的列表,並帶有一個x和y int的列表。 如何根據第一個數字對它們進行排序。 我需要的輸出是這樣的:

var threeD = [ [[13,95],[18,100]], [[2,5],[7,45],[12,100]], [[19,100]] ];

我當時正在考慮使用某種linq語句進行排序。 還是應該通過創建嵌套的for循環來繼續?

編輯:我只需要排序最里面的列表,而不是外面的列表。 實際上,它們是使用jqplot包含多條線的線圖的坐標,因此呈現每條線的順序並不重要。 謝謝

首先對x / y數字的內部列表進行排序,然后對外部列表進行排序:

threeD.Select(sublist => sublist.OrderBy(xy => xy[0]).ToList())
      .OrderBy(sublist => sublist[0][0])
      .ToList();

如果只需要對內部列表進行排序,則只需將外部列表排除在外即可:

threeD.Select(sublist => sublist.OrderBy(xy => xy[0]).ToList()).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM