首页 > 解决方案 > 在 List(Of List(Of Integer)) 中查找值

问题描述

我有一个看起来像这样的数据List(Of List(Of Integer))调用selectedskills

(0)
   (0) 79
   (1) 1
(1)
   (0) 83
   (1) 3
(2)
   (0) 113
   (1) 4

等等。我如何首先确定列表是否包含 83,然后如果找到,则第二次查找主索引。所以在这种情况下,如果在整个列表中找到 83,我想找到索引 1。基本上我如何查看任何二级索引0是否包含83,然后返回主索引

希望这是有道理的。

标签: vb.netlist

解决方案


您可以使用Lambda 表达式作为谓词FindIndex

Dim index = selectedskills.FindIndex(Function(innerList) innerList(0) = 83)

如果没有找到匹配的条目,则返回 -1 作为索引。此代码假定 的每个元素selectedskills都有一个包含至少一个元素的内部列表。如果不是这种情况,请添加检查

Dim index = selectedskills.FindIndex(Function(innerList) innerList IsNot Nothing AndAlso _
    innerList.Count > 0 AndAlso _
    innerList(0) = 83)

如果内部列表始终有 2 个条目,您也可以使用元组

Dim selectedskills = New List(Of (Integer, Integer)) From { (79, 1), (83, 3), (113, 4) }

Dim index = selectedskills.FindIndex(Function(element) element.Item1 = 83)

推荐阅读