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

C# 如何使用Dictionary.Values.Where<;t来源>;(Func<;TSource,bool>;谓词)查找所需的值?,c#,asp.net,dictionary,C#,Asp.net,Dictionary,我有字典,比如 Dictionary<string, bool> accValues = new Dictionary<string, bool>() Dictionary accValues=newdictionary() 我想得到特定键的布尔值。我可以通过foreach,比如 foreach (KeyValuePair<string, bool> keypair in accValues) { i

我有字典,比如

Dictionary<string, bool> accValues = new Dictionary<string, bool>()
Dictionary accValues=newdictionary()
我想得到特定键的布尔值。我可以通过foreach,比如

foreach (KeyValuePair<string, bool> keypair in accValues)
            {
                if (keypair.Key == "SomeString")
                {
                    return keypair.Value;
                }
            }
foreach(accValues中的KeyValuePair keypair)
{
if(keypair.Key==“SomeString”)
{
返回keypair.Value;
}
}

但是如何使用Where函数实现呢?

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

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

accValue.TryGetValue("SomeString", out boolValue)
如果要查找与某个任意谓词匹配的键的值,可以使用如下语句:

accValues.Where(kvp => kvp.Key == "SomeString").Select(kvp => kvp.Value).FirstOrDefault();
accValues.Where(kvp => kvp.Key == "SomeString").Select(kvp => kvp.Value).FirstOrDefault();