我有以下列表:
List<KeyValuePair<int, DataDetailValues>> dataResults
键值对中的键可以是重复的 - 例如列表可以包含:
Key | Data
1 | ABC
2 | DEF
3 | GHI
1 | JKL
我希望将键值为1的dataResults中的所有值提取到第二个列表中,即我想要:
1 | ABC
1 | JKL
非常感谢
答案 0 :(得分:2)
使用Where: -
List<KeyValuePair<int,DataDetailValues>> result = data.Where(x => x.Key == 1).ToList();
答案 1 :(得分:0)
如果您想要返回任何重复项,即使它们的键值不是1,也可以使用。
List<KeyValuePair<int, string>> dataResults = new List<KeyValuePair<int,string>>();
dataResults.Add(new KeyValuePair<int, string>(1, "one"));
dataResults.Add(new KeyValuePair<int, string>(2, "two"));
dataResults.Add(new KeyValuePair<int, string>(1, "one1"));
dataResults.Add(new KeyValuePair<int, string>(3, "three"));
dataResults.Add(new KeyValuePair<int, string>(2, "two2"));
var duplicates = dataResults.GroupBy(i => i.Key).Where(g => g.Count() > 1).Select(i => i);