使用Linq在c#中使用字典数组

Har*_*iya -6 c# linq arrays dictionary

我有一个字典,键是整数类型,值是字符串类型

核心价值

1 - “A”

2 - “乙”

3 - "c"

4 - “D”

5 - “E”

我有一个字符串类型的数组

{"A","D","E"}

现在我想匹配字典和数组以使用字典键生成以下输出

1:真 4:真 5:真

在上面的输出中,整数表示字典键值“A”在数组中匹配,即:- 1=true

D S*_*ley 5

我会join用来查找匹配项:

Dictionary<int, string> dict = new Dictionary<int, string>
{ 
    {1, "A"},
    {2, "B"},
    {3, "c"},
    {4, "D"},
    {5, "E"},
};

string[] values = new [] {"A","D","E"};

var query = 
    from kvp in dict
    join s in values on kvp.Value equals s
    select new {kvp.Key, Found = true};
Run Code Online (Sandbox Code Playgroud)

您也可以使用where values.Contains(kvp.Value)而不是连接,但每次都会搜索数组,而连接将创建查找,这将更有效地搜索。对于您发布的数据的大小,可能不会有太大的性能提升,但对于大型集合,它可能会更快。