【发布时间】:2019-06-27 07:04:18
【问题描述】:
我已经在堆栈溢出中引用了以下链接以满足我的要求,它提供了匹配的键和布尔结果。我需要字典中与字符串列表匹配的键和值的结果。
参考链接如下: Array with Dictionary in c# using Linq
上面的同一链接中提供了该示例。无论如何我将在下面提供相同的内容
Dictionary<int, List<string>> dict = new Dictionary<int, <string>>
{
{1, new List<string>(){"A","B"}},
{2, new List<string>(){"C","D"}},
{3, new List<string>(){"G","H"}},
{4, new List<string>(){"E","F"}},
{5, new List<string>(){"I","J"}},
};
string[] values = new []
{
"A", "D", "E"
};
var result =
from kvp in dict
join s in values on kvp.Value equals s
select new {kvp.Key, Found = true};
我试过的如下:
var result = dict
.Select(x => new {
keys = x.Key,
values = values
.ToList()
.Any(x.Value.Contains)
});
我希望输出类似于{1,A},{2,D},{4,E},但实际上是{1,True},{4,True},{5,True}
有人可以帮我解决这个问题吗?
【问题讨论】:
-
最好使用
HashSet<string>而不是String[],以获得 O(1) 性能 -
@mjwills,感谢您鼓励我。我首先将字符串值列表与字典值匹配,如果匹配则我需要从字典中获取匹配的键和值。
-
我的预期结果是 {1,A},{4,D},{5,E}(字典)
标签: c# list linq dictionary