gpt4 book ai didi

c# - 如何根据 Dictionary int 值订购 Dictionary 列表?

转载 作者:行者123 更新时间:2023-11-30 13:49:43 24 4
gpt4 key购买 nike

我有这个列表:

List<Dictionary<int, string>> list = new List<Dictionary<int, string>>();

我想根据 Dictionary int 值对其进行排序(升序)。我该怎么做?

示例:

Dictionary<int, string> Min1 = new Dictionary<int, string>();
Dictionary<int, string> Min2 = new Dictionary<int, string>();
Dictionary<int, string> Min3 = new Dictionary<int, string>();
Dictionary<int, string> Min4 = new Dictionary<int, string>();
Dictionary<int, string> Min5 = new Dictionary<int, string>();

Min1.Add(3, "name");
Min2.Add(1, "hello");
Min3.Add(5, "marco");
Min4.Add(4, "is");
Min5.Add(2, "my");

List<Dictionary<int, string>> list = new List<Dictionary<int, string>>();
list.Add(Min1);
list.Add(Min2);
list.Add(Min3);
list.Add(Min4);
list.Add(Min5);

// NOW I NEED TO ORDER list BASED ON DICTIONARY INT VALUE
// SO THE ORDER ON THE LIST SHOULD BE Min2, Min5, Min1, Min4, Min3

我想对列表进行排序,所以当我循环它并找到字符串时,我打印“hello my name is marco”

最佳答案

如果你想展平数据并对它们进行排序,你可以试试这个:

list.SelectMany(x=>x).OrderBy(x=>x.Key)

但是如果您不喜欢扁平化数据而只是对字典进行排序,您可以这样做:

list.Select(x=>x.OrderBy(y=>y.Key));

编辑: 据我了解,您只需要使用一本字典,因此您可以这样做:

Dictionary<int,string> dic = new Dictionary<int,string>();
var result = dic.OrderBy(x=>x.Key).ToLookup(x=>x);

如果你想使用列表而不是字典(在你的情况下似乎不太好)你可以这样做;

 List<KeyValuePair<int,string>> lst1 = new List<KeyValuePair<int,string>>();
var result = lst1.OrderBy(x=>x.Key).ToLookup(x=>x);

关于c# - 如何根据 Dictionary int 值订购 Dictionary<int, string> 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8655088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com