【问题标题】:How to use Dictionary.Values.Where <TSource> (Func<TSource,bool> predicate) to find needed values?如何使用 Dictionary.Values.Where <TSource> (Func<TSource,bool> 谓词) 来查找所需的值?
【发布时间】:2011-04-04 17:02:51
【问题描述】:

我有字典,比如

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

我想获取特定键的布尔值。我可以通过 foreach 来实现,比如

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

但是使用Where函数怎么可能实现呢?

【问题讨论】:

    标签: c# asp.net dictionary


    【解决方案1】:

    为什么要遍历每个键/值对? 使用

    accValues["SomeString"]
    

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

    accValue.TryGetValue("SomeString", out boolValue)
    

    如果你想找到一个匹配某个任意谓词的键的值,你可以使用这样的语句:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      相关资源
      最近更新 更多