如何使用Dictionary.Values.Where <TSource>(Func <TSource,bool>谓词)来查找所需的值?

Jur*_*nov 3 c# asp.net dictionary

我有字典,喜欢

Dictionary<string, bool> accValues = new Dictionary<string, bool>()
Run Code Online (Sandbox Code Playgroud)

我希望获得特定密钥的bool值.我可以通过foreach来做,比如

foreach (KeyValuePair<string, bool> keypair in accValues)
            {
                if (keypair.Key == "SomeString")
                {
                    return keypair.Value;
                }
            }
Run Code Online (Sandbox Code Playgroud)

但是如何实现使用Where功能呢?

mac*_*kow 7

为什么迭代每个键/值对?使用

accValues["SomeString"]
Run Code Online (Sandbox Code Playgroud)

或者,如果您不希望在字典中不存在此类键时抛出异常:

accValue.TryGetValue("SomeString", out boolValue)
Run Code Online (Sandbox Code Playgroud)

如果要查找与某个任意谓词匹配的键的值,可以使用如下语句:

accValues.Where(kvp => kvp.Key == "SomeString").Select(kvp => kvp.Value).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)