vb.net - 如何在 vb.net 中的字典列表中检查值?
问题描述
如果列表中的任何字典包含特定值,什么表达式可以返回布尔值?
想象一下,但不必单独引用列表中的每个项目:
(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
,True
如果有任何单独的检查返回,则返回True
。作为 LINQ,如果找到匹配项,它们都会避免毫无意义地检查其余值。
推荐阅读
- sql - 如何在 SQL 中删除每个组中较长的元素?
- python - PyCharm 如何在 macOS 上创建与 Matplotlib 一起使用的 virtualenv?
- ios - 我可以在使用 socket.io-client-swift 连接时更改 connectParams 吗?
- python - 替换列表中的空格
- java - 如何在应用启动时预加载 Firestore 数据?
- javascript - 如何在文件扩展之前删除文本
- sql - 在 oracle 中,具有多个连接的查询执行需要更多时间
- android - 单击当前项目时更改适配器中的下一个项目背景颜色
- android - 在 React Native App 中禁用屏幕捕获/ScreenShot
- php - 如何在 PHP 中使用 Session(XML 307 响应)处理 API