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

时间:2010-08-27 09:19:01

标签: c# asp.net dictionary

我有字典,比如

Dictionary<string, bool> accValues = new Dictionary<string, bool>()

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

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

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

1 个答案:

答案 0 :(得分:7)

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

accValues["SomeString"]

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

accValue.TryGetValue("SomeString", out boolValue)

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

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