获取字典中某个值的计数

时间:2018-02-02 03:57:34

标签: vb.net dictionary

我有一种情况,我有一个字典(字符串键)存储一堆布尔配置值。现在我遇到了我需要计算字典中True值的数量的问题,但是我找不到一个简单的方法来做到这一点而不用循环遍历字典。

这些是我的词典“Lights”的内容:

{"LivingRoom", False}
{"Kitchen", False}
{"Bedroom", True}
{"Porch", True}
{"Driveway", True}

所以我们可以看到3个灯亮,2个灯熄灭。假设我想告诉用户打开了多少个灯。有一个简单的方法吗?

1 个答案:

答案 0 :(得分:1)

您需要测试每个值,但不需要直接测试。

Dim trueCount = myDictionary.Count(Function(kvp) kvp.Value)

Count是LINQ扩展方法。如果你不熟悉LINQ,那么可能会有一些一般的阅读。将循环压缩成简单的单行非常有用。等效的非LINQ将是:

Dim trueCount As Integer

For Each kvp In myDictionary
    If kvp.Value Then
        count += 1
    End If
Next

这个LINQ也可以工作:

Dim trueCount = myDictionary.Values.Count(Function(b) b)