Find Next Index

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

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von exc-jdbi.

    Find Next Index

    Hallo Leute,

    Ich suche in einer List oft String den Index eines Eintrages mit folgendem code.

    VB.NET-Quellcode

    1. IconList.FindIndex(Function(s As String) s = record.Attribute("Name").Value)


    Da einträge Doppelt vorhanden sein können und auch dürfen speichere ich den index mit namen ab. suche ich jetzt erneut nach dem gleichen Namen bekomme ich natürlich auch den selben index. Diesen (sozusagen) Fehler werte ich aus und möchte nun den nächsten Index mit diesem einrag suchen.

    wie kann ich das machen?

    Grüße
    Ähm - war das denn kein Deutsch?
    Ok - "Indicees" könnte man als Latein auffassen - obwohl ich glaube, dassis inzwischen ein deutsches Wort.
    Ja, und "matchen" würde ich auch als "Deutsch" bezeichnen, aber weil ich bin strikter Verfechter des Denglischen, in dem Sinne, dass sog "Anglizismen" (<- ein Latinizismus) barrierefreien Eingang finden sollten in die sog. "deutsche" Sprache. Sprache lebt und verändert sich.

    Wie dem auch sei.
    Wenn du ein Wort aus post#2 nicht verstanden hast, lass mich wissen, welches genau.

    Ansonsten habe ich hier folgendes Snippet für dich ausgearbeitet (falls du mit "deutsch" vb.net - Code meintest):

    VB.NET-Quellcode

    1. From i In Enumerable.Range(0, IconList.Count) Where IconList(i) = record.Attribute("Name").Value)
    Das entspricht strukturell deim Snippet aus post#1 - was ja auch kein gültiges Statement ist, sondern nur ein halbes.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Im MOment fällt mir nur gerade das hier ein.

    VB.NET-Quellcode

    1. Dim lstString As New List(Of String) From {"Hans", "Peter", "Gustav", "Bärbel", _
    2. "Joscha", "Frank", "Stefan", "Peter", _
    3. "Bernd", "Joe", "Herbert", "Brösel"}
    4. Dim idx As Int32 = -1
    5. Dim lstIdx As New List(Of Int32)
    6. Do
    7. idx = Array.IndexOf(lstString.ToArray, "Peter", idx + 1)
    8. If idx > 0 Then
    9. lstIdx.Add(idx)
    10. End If
    11. Loop While -1 <> idx


    Gibt aber sicher noch bessere Varianten

    Edit: Joo. EDR seine Variante ist natürlich auch ganz gut, und vorallem kurz :)

    Freundliche Grüsse

    exc-jdbi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()