Ojektliste mit Linq durchsuchen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    Ojektliste mit Linq durchsuchen

    Hallo zusammen,

    ich hab ein Problem mit einer mehrdimensionalen Objektliste. Ich würde die gerne mit Linq nach einem beliebigen Objekt durchsuchen, statt mit Schleifen arbeiten zu müssen, weil das m.M. nach effizienter sein wird.

    Hätte da vielleicht irgendwer einen Denkansatz für mich, wenn ich beispielsweise folgendes Konstrukt habe und aus dieser Liste das Objekt mit Wert 2 suche?

    VB.NET-Quellcode

    1. Dim ar(2)
    2. ar(0) = "1"
    3. ar(1) = "2"
    4. ar(2) = "3"
    5. Dim lst As List(Of Object()) = New List(Of Object())
    6. lst.Add(ar)



    Danke und viele Grüße,
    Flo :)
    Moinsen.

    Mit LINQ, versuche es erstmal mit:

    .Any() ---> .Any(Function(x) x = 2) <--- Hat irgendeiner den Wert 2?
    .First() ---> .First(Function(x) x = 2) <--- Der erste Treffer mit dem Wert 2.

    .Where()
    .Select()

    Dann mit Kombinationen der obigen arbeiten, und mit Lambda aufrufen, die Bedingungen für die Suche/Treffer festlegen.

    Am besten alles mit LINQ auf eine einzige (Zwischen-) Resultate liste reduzieren, und diese dann gezielt durchlaufen.

    Wünsche Dir gute Treffer und wenn der LINK nicht LINQt, dann war es Lambda seine Schuld! Das petze ich... :)

    c.u Joshi

    EDIT: Leserlicher gemacht.. denke ich :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Joshi“ ()

    Njaaa, bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Denn Zeile#1 ist Option Strict Off. Und: Ne List(Of Object) ist in fast allen Fällen falsch. Wenn, dann bitte List(Of String()), wenn nur String-Arrays da reinsollen.
    Der nächste Punkt ist, dass bei ner List(Of String()) (oder allgemein List(Of Whatever())) das mit LINQ etwas anders gemacht werden muss. Oder @Joshi ist in Gedanken aufgrund der Syntax mit dem => n bissl bei C#. Und: Immer schön nach Strings suchen, wenn welche drinstecken, nicht nach Integern ;)

    VB.NET-Quellcode

    1. Dim IstDie2IrgendwoInDerListeZuFinden = lst.Any(Function(x) x.Any(Function(y) y = "2"))
    bedeutet: Gibt es mindestens ein Listenelement (also ein StringArray), bei dem mindestens ein ArrayElement der String "2" ist?

    Weitere konkrete Vorschläge gibt's wenn konkrete Code-Anforderungen mit konkretem/echten Code präsentiert werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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

    floxnet schrieb:

    weil das m.M. nach effizienter sein wird.
    „LINQ“ iteriert auch nur durch die Liste… effizienter oder schneller ist das nicht zwangsläufig.
    "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