我有一种情况,我有一个字典(字符串键)存储一堆布尔配置值。现在我遇到了我需要计算字典中True值的数量的问题,但是我找不到一个简单的方法来做到这一点而不用循环遍历字典。
这些是我的词典“Lights”的内容:
{"LivingRoom", False}
{"Kitchen", False}
{"Bedroom", True}
{"Porch", True}
{"Driveway", True}
所以我们可以看到3个灯亮,2个灯熄灭。假设我想告诉用户打开了多少个灯。有一个简单的方法吗?
答案 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)