在List中查找值(列表(整数))

问题描述 投票:-3回答:1

我有一个名为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.net list
1个回答
2
投票

你可以使用Lambda Expression作为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个条目,您也可以使用tuples

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

Dim index = selectedskills.FindIndex(Function(element) element.Item1 = 83)
© www.soinside.com 2019 - 2024. All rights reserved.