0

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

该数组的值的格式类似于(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)(array() As T, match As System.Predicate(Of T)) As T”的类型参数“T”。

'Public Shared Function FindLast(Of T)(array() As T, match As System.Predicate(Of T)) As T' 的类型参数 'T' 的类型参数推断失败。无法从传递给参数“array”的参数推断类型参数。

'Public Shared Function FindLast(Of T)(array() As T, match As System.Predicate(Of T)) As T' 的类型参数 'T' 的类型参数推断失败。无法从传递给参数“match”的参数推断类型参数。

4

1 回答 1

1

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

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

    Dim position() As Integer = {1, 2, 2, 3, 3, 3}
    Dim tofind = 2
    Dim index = Array.FindLastIndex(position, Function(value) value = tofind)
于 2012-09-03T12:05:26.323 回答