我想要实现的是一个按字母顺序排序的嵌套列表。
例如我的输入:
fat, twat, gat //Line 1
cat, hat, bat // Line 2
twat, lack, rat // Line 3
我希望输出为:
bat, cat, hat // Line 2
fat, gat, twat // Line 1
lack, rat, twat // Line 3
如您所见,列表首先在内部排序,然后在外部排序。
目前我的实现是使用嵌套列表:
List<List<String>> testSort;
我已经设法使用这种方法对内部列表进行排序:
public static List<List<String>> sortList(List<List<String>> input)
{
input.ForEach(delegate (List<string> o)
{
o.Sort();
});
return input;
}
我现在不确定如何在外部对列表进行排序。帮助将不胜感激!
提前致谢!
最佳答案
在每个内部列表已经排序后,您可以使用 OrderBy() 根据每个列表的第一个元素对外部列表进行排序:
input.ForEach(t => t.Sort());
input = input.OrderBy(t => t.First()).ToList();
为了回应下面的 M.kazem Akhgary 评论,如果您不仅希望根据第一个元素而且根据整个列表对外部列表进行排序,我只能想到这个解决方案。也许其他人有更好的解决方案。
input.ForEach(t => t.Sort());
input.Sort((e1, e2) => {
for (int i = 0; i < e1.Count; i++)
{
if(e1[i] != e2[i])
{
return e1[i].CompareTo(e2[i]);
}
}
return 0;
});
关于c# - 在 C# 中对嵌套字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32547077/