我有这本词典
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#中不是那么好,我想你会节省很多时间。
答案 0 :(得分:5)
迭代字典的所有元素并对每个列表进行排序。您可以通过使用适当的比较函数调用List.Sort
来对列表进行排序。
foreach(var entry in dictionary) {
entry.Value.Sort((a, b) => a[0].CompareTo(b[0]));
}
答案 1 :(得分:5)
试试这段代码:
foreach (var pair in dictionary)
{
pair.Value.Sort((x, y) => x[0].CompareTo(y[0]));
}
答案 2 :(得分:0)
这应该有效:
dictionary = dictionary
.ToDictionary(x => x.Key,
x => x.Value.OrderBy(a => a[0]).ToList());
答案 3 :(得分:0)
简单的方法是迭代键。访问特定密钥下的每个列表。对每个列表进行排序,并将未排序的列表替换为新的排序列表:
foreach (var key in dictionary.Keys)
{
dictionary[key] = dictionary[key].OrderBy(i => i[0]).ToList();
}