如何在c#linq中找到具有一个元素(值)的键

时间:2018-08-23 08:17:09

标签: c# linq dictionary

我在C#中有下一本字典

Dictionary<int, List<int>> dictionary = new Dictionary<int, List<int>>();

{1,1,2,3,4 2,4,5,6,7 3,1}

我想找到列表上只有一个元素的元素(最后在字典中)。 我该怎么办?

2 个答案:

答案 0 :(得分:2)

编辑:

我刚刚意识到您想找到钥匙。

List<int> result = dictionary.Where(x => x.Value.Count == 1).Select(x => x.Key).ToList();

这应该是您正在寻找的那个

原始:

我相信您正在使用LINQ寻找这种东西:

IEnumerable<List<int>> result = dictionary.Values.Where(x => x.Count == 1);

如果您希望将其包含在列表中,我将考虑枚举集合。

List<List<int>> result = dictionary.Values.Where(x => x.Count == 1).ToList();

希望这能回答您的问题。

答案 1 :(得分:0)

这种方式:

Dictionary<int, List<int>> dictionary = new Dictionary<int, List<int>>();

List<KeyValuePair<int, List<int>>> result = dictionary.Where(keyValuePair => keyValuePair.Value.Count == 1).ToList();

发生了什么事?

dictionary.Where |在dictionary中搜索

keyValuePair => |一个KeyValuePair,我将使用其名称keyValuePair

keyValuePair.Value |其值(即List<int>

keyValuePair.Value.Count == 1 | Count等于1

.ToList() |然后返回包含匹配的KeyValuePairs

的列表