如何检查 vb.net 中字典列表中的值?
How to check for value in a list of dictionaries in vb.net?
如果列表中的任何字典包含特定值,哪个表达式可以 return 布尔值?
想象一下,但不必单独引用列表中的每个项目:
(Dict_List(0).ContainsValue(value) or Dict_List(1).ContainsValue(value) or Dict_List(2).ContainsValue(value))=False
理想情况下,如果值不在其中一个字典中,以及其他几个条件;然后代码将添加另一个字典。我知道 foreach 在这种情况下可能会起作用,但单个表达式在运行时会更快,最好知道这是最佳实践。
想到了两个 LINQ 选项:
If Dict_List.SelectMany(Function(d) d.Values).Contains(value) Then
或:
If Dict_List.Any(Function(d) d.ContainsValue(value)) Then
第一个选项从每个 Dictionary
中获取值并将它们全部连接到一个列表中,然后检查该列表中的匹配值。第二个选项单独检查每个 Dictionary
和 returns True
如果有任何单独检查 returns True
。作为 LINQ,它们都避免在找到匹配项时毫无意义地检查其余值。
如果列表中的任何字典包含特定值,哪个表达式可以 return 布尔值?
想象一下,但不必单独引用列表中的每个项目:
(Dict_List(0).ContainsValue(value) or Dict_List(1).ContainsValue(value) or Dict_List(2).ContainsValue(value))=False
理想情况下,如果值不在其中一个字典中,以及其他几个条件;然后代码将添加另一个字典。我知道 foreach 在这种情况下可能会起作用,但单个表达式在运行时会更快,最好知道这是最佳实践。
想到了两个 LINQ 选项:
If Dict_List.SelectMany(Function(d) d.Values).Contains(value) Then
或:
If Dict_List.Any(Function(d) d.ContainsValue(value)) Then
第一个选项从每个 Dictionary
中获取值并将它们全部连接到一个列表中,然后检查该列表中的匹配值。第二个选项单独检查每个 Dictionary
和 returns True
如果有任何单独检查 returns True
。作为 LINQ,它们都避免在找到匹配项时毫无意义地检查其余值。