Hello Guys Im陷入了困境。我正在创建一个像这样的键值对列表
var list = new List<KeyValuePair<string, int>>();
list.Add(new KeyValuePair<string, int>("C2", 1));
list.Add(new KeyValuePair<string, int>("C2", 2));
list.Add(new KeyValuePair<string, int>("A1", 4));
list.Add(new KeyValuePair<string, int>("B1", 5));
list.Add(new KeyValuePair<string, int>("B1", 6));
现在添加项目后。我想要的是我想根据密钥对列表进行排序。我已使用此代码对上面的列表进行排序
list.Sort(new KvpKeyComparer<string, int>());
输出就像这样
[A1, 4]
[B1, 5]
[B1, 6]
[C2, 1]
[C2, 2]
现在我想要的是我想要比较索引4处的最后一个键的值,即 [c2,2]到[C2,1]使用if条件。但我只想比较c2和c2 n而不是整个对[c2,2]到[C2,1]。基于我会做一些我的操作。在第一次比较后,我将比较索引3和索引,即[c2,1]到[b1,6]。比较应该在C2和B1.ie之间它应该检查if条件if(C2 = B1)..我无法实现这一点..任何人都可以帮助我。我一直在尝试。我是一个新人,所以帮帮我
答案 0 :(得分:1)
var list2 = new List<KeyValuePair<string, int>>();
for (int i=0;i<list.Count-1;i++)
{
if (list[i].Value>list[i+1].Value)
{
list2.Add(new KeyValuePair<string, int>(list[i].Key,list[i].Value)
}
}
答案 1 :(得分:-2)
更容易的选择是使用LINQ进行排序:
var orderedList = list.OrderBy(kvp => kvp.Key).ThenBy(kvp => kvp.Value).ToList();