双数组的排序列表

本文关键字:列表 排序 数组 | 更新日期: 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();
}