C# 双数组排序表

C# 双数组排序表,c#,arrays,sorting,dictionary,collections,C#,Arrays,Sorting,Dictionary,Collections,我有这本字典 Dictionary<string, List<double[]>> dictionary = new Dictionary<string, List<double[]>>(); 是否仍然存在,以便我可以根据数组的xvalue对字典中的每个列表进行排序 例如 这是名单 [[1,100], [10, 100], ....[3, 100]] 排序后应该是这个 老实说,我所做的只是在谷歌上搜索这样一个功能,但我做不了更多,因为我对c语言

我有这本字典

Dictionary<string, List<double[]>> dictionary = new Dictionary<string, List<double[]>>();
是否仍然存在,以便我可以根据数组的
xvalue
对字典中的每个列表进行排序

例如 这是名单

[[1,100], [10, 100], ....[3, 100]]
排序后应该是这个
老实说,我所做的只是在谷歌上搜索这样一个功能,但我做不了更多,因为我对c语言不太在行,我想问你会节省很多时间。

迭代字典的所有元素并对每个列表进行排序。您可以通过使用适当的比较函数调用
list.sort
对列表进行排序

foreach(var entry in dictionary) {
    entry.Value.Sort((a, b) => a[0].CompareTo(b[0]));
}
这应该起作用:

dictionary = dictionary
             .ToDictionary(x => x.Key, 
                           x => x.Value.OrderBy(a => a[0]).ToList());
请尝试以下代码:

foreach (var pair in dictionary) 
{
    pair.Value.Sort((x, y) => x[0].CompareTo(y[0]));
}

简单的方法是遍历键。访问特定键下的每个列表。对每个列表进行排序,并将未排序的列表替换为新的已排序列表:

foreach (var key in dictionary.Keys)
{
    dictionary[key] = dictionary[key].OrderBy(i => i[0]).ToList();
}

如果数组总是有两个元素,那么实际上应该选择
元组(或您自己的类型),而不是数组。如果选择该选项,您甚至可能更愿意通过在
列表中按顺序存储元组的第一个和第二个元素,使
列表成为一维。例如[1,5][2,8][3,4]将变成[1,5,2,8,3,4]。谢谢你的回答,但也许你做错了什么?我在你的
a,b
部分中得到
无法将lamda表达式转换为怀疑[]
answer@MarcoDinatsoli:请再试一次。我修正了一些错误,把它缩短了。看来你是第一个回答我的人:)谢谢你,你太棒了。谢谢。它起作用了+1.将接受一次系统allows@Marco迪纳索利,谢谢,但请考虑接受丹维尔的回答。他是第一个:)@2kay okay会的
foreach (var pair in dictionary) 
{
    pair.Value.Sort((x, y) => x[0].CompareTo(y[0]));
}
foreach (var key in dictionary.Keys)
{
    dictionary[key] = dictionary[key].OrderBy(i => i[0]).ToList();
}