0

配列内の値の最後の出現の参照を見つけたいと思います。

配列には のような形式(0,7,7,7,7,7,14,15,15,15,15,15,15,16)の値があり、2 列目にブール値があります。

探している関数は FINDLAST だと思いますが、構文を機能させることができません。

編集:

配列内のオカレンスの 1 つの位置があり、CursorPositionそこから配列内の最後のオカレンスを見つけたいと考えています。私のコードは現在:

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

現在、3 つのエラーが発生しています。

「Public Shared Function 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()メソッドについて話している。最後の引数は述語、デリゲート型です。つまり、このメソッドには候補値を渡すことができる関数が必要であり、一致する場合はTrueを返す必要があります。

このような述語は、ラムダ式を使用して最も簡単に実装できます。詳細については、リンクを確認してください。簡単な例:

    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 に答える