双数组的排序列表
本文关键字:列表 排序 数组 | 更新日期: 2023-09-27 17:59:09
我有这本字典
Dictionary<string, List<double[]>> dictionary = new Dictionary<string, List<double[]>>();
我在里面填了很多数据。
列表中的每个数组都有两个值,如下所示:
[xvalue, yvalue]
是否存在,以便我可以根据数组的xvalue
对字典中的每个列表进行排序。
例如
这是列表
[[1,100], [10, 100], ....[3, 100]]
排序后应该是这样
[[1,100], [3,100], [10,100]]
老实说,我所做的只是在谷歌上搜索这样一个功能,但我不能做更多的事情,因为我在c#方面不是很好,我想问你会节省很多时间。
遍历字典的所有元素,并对每个列表进行排序。您可以通过使用适当的比较函数调用List.Sort
来对列表进行排序。
foreach(var entry in dictionary) {
entry.Value.Sort((a, b) => a[0].CompareTo(b[0]));
}
试试这个代码:
foreach (var pair in dictionary)
{
pair.Value.Sort((x, y) => x[0].CompareTo(y[0]));
}
这应该有效:
dictionary = dictionary
.ToDictionary(x => x.Key,
x => x.Value.OrderBy(a => a[0]).ToList());
简单的方法是遍历键。访问特定键下的每个列表。对每个列表进行排序,并将未排序的列表替换为新排序的列表:
foreach (var key in dictionary.Keys)
{
dictionary[key] = dictionary[key].OrderBy(i => i[0]).ToList();
}