找到数组vb中最后一次出现的值

时间:2012-09-03 10:16:43

标签: vb.net visual-studio-2005

我想找到数组中最后一次出现值的引用。

数组的值格式类似于(0,7,7,7,7,7,14,15,15,15,15,15,15,16),第二列中的布尔值。

我相信FINDLAST是我正在寻找的功能,但我无法使语法工作。

编辑:

我有一个在数组CursorPosition中出现的位置,并且我希望找到数组中的最后一个出现位置。我的代码目前是:

CursorPosition = position.FindLast(position, position(0, CursorPosition))

我目前收到3个错误:

  

为'公共共享函数FindLast(Of T)输入参数'T'(array()为T,匹配As System.Predicate(Of T))因为T'无法推断。

     

类型参数推断对于'公共共享函数FindLast(Of T)的类型参数'T'失败(array()为T,匹配As System.Predicate(Of T))为T'。无法从传递给参数'array'的参数推断出类型参数。

     

类型参数推断对于'公共共享函数FindLast(Of T)的类型参数'T'失败(array()为T,匹配As System.Predicate(Of T))为T'。无法从传递给参数'match'的参数推断出类型参数。

1 个答案:

答案 0 :(得分:1)

您正在讨论Array.FindLast()和Array.FindLastIndex()方法。最后一个参数是谓词,一个委托类型。换句话说,该方法需要一个可以传递候选值的函数,并且当匹配时它应该返回True。

使用lambda expression最容易实现这样的谓词。查看链接了解详细信息。一个简单的例子:

    Dim position() As Integer = {1, 2, 2, 3, 3, 3}
    Dim tofind = 2
    Dim index = Array.FindLastIndex(position, Function(value) value = tofind)