Finde den Index in einer List(Of Byte())

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Bartosz.

    Finde den Index in einer List(Of Byte())

    Hi all,

    ich habe eine List(of Byte()) vorliegen, die bereits befüllt ist und ich möchte nun den Index herausfinden.
    Nehmen wir an, ich bekomme von einer Quelle das Byte-Array {0,1,2,3,4}. Ich weiß, dass das Array ebenso in der List vorkommt. Wie finde ich nun den Index heraus?

    Ich habe bereits .FindIndex gefunden, aber die tolle Dokumentation von M******** bringt mich nicht weiter.

    Die Byte-Arrays haben immer 5 Elemente!
    Liebe Grüße

    VB.NET-Quellcode

    1. [/font]Dim Index_in_Liste As Integer = MeineListe.FindIndex(Function(x) x. 'Was hier?[size=10][font='arial,helvetica,sans-serif']
    [/size]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bartosz“ ()

    Durch die Liste iterieren und prüfen ob dein Byte() mit dem gewünschten Werten drin ist?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @Takafusa Ich will prüfen, ob das Array als Ganzes in der Liste steht.
    @mrMo muss ich wohl so machen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Ist das Byte-Array, das du vorliegen hast, das gleiche oder das selbe wie das in der Liste?
    Also sind es zwei verschiedene Arrays, die die gleichen Werte beinhalten? Oder ist es ein und das selbe Array?

    In ersterem Fall muss man die Werte der Arrays vergleichen. Dafür gibt's die praktische SequenceEqual-Funktion:

    VB.NET-Quellcode

    1. Dim MeineListe As New List(Of Byte())
    2. 'Hier weggelassen: Liste befüllen.
    3. Dim Foo = New Byte() {0,1,2,3,4} 'Beispiel für ein zu suchendes Array
    4. Dim Index_in_Liste = MeineListe.FindIndex(Function(x) x.SequenceEqual(Foo))


    In letzterem Fall kannst du direkt Array.IndexOf verwenden:

    VB.NET-Quellcode

    1. Dim MeineListe As New List(Of Byte())
    2. 'Hier weggelassen: Liste befüllen.
    3. Dim Foo = MeineListe(2) 'Beispiel für ein zu suchendes Array
    4. Dim Index_in_Liste = Array.IndexOf(MeineListe, Foo)
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Bartosz schrieb:

    Dim Index_in_Liste As Integer = MeineListe.FindIndex(Function(x) x. 'Was hier?

    VB.NET-Quellcode

    1. Dim Index_in_Liste As Integer = MeineListe.FindIndex(Function(x) x.SequenceEqual(DeinSuchArray))

    Niko war schneller...
    Meinen Post kann man wieder löschen...