Ich konvertiere DataTables in eine generische Liste und benötige eine schnelle und einfache Möglichkeit, eine Suchfunktion zu implementieren. Es scheint, dass ich ein Prädikat verwenden muss. Nach weiterer Untersuchung kann ich die Funktionalität noch nicht neu erstellen. Ich habe dieses Prädikat ...Generisches Listen-Äquivalent von DataTable.Rows.Find mit VB.NET?
Private Function ByKey(ByVal Instance As MyClass) As Boolean
Return Instance.Key = "I NEED THIS COMPARISON TO BE DYNAMIC!"
End Function
Und dann es so nennen ...
Dim Blah As MyClass = MyList.Find(AddressOf ByKey)
Aber ich habe keine Möglichkeit, in einer Schlüsselvariable zu diesem Prädikat übergeben Sie den Vergleich zu tun, wie Ich habe das mit DataTable gemacht ...
Dim MyRow as DataRow = MyTable.Rows.Find(KeyVariable)
Wie kann ich eine Prädikat-Delegate-Funktion in VB.NET einrichten, um dies zu erreichen?
Empfehlen Sie nicht LINQ oder Lambdas, da dies in Bezug auf .NET Version 2.0 ist.
Das sieht so aus als würde es funktionieren. Vielen Dank! Ich werde ein paar Tests machen und zurück zu dir kommen. –
Danke nochmal! Ich habe am Ende eine generische Klasse geschrieben, die auch Reflektion verwendet, so dass jedes Feld mit einem beliebigen Wert eines beliebigen Typs abgeglichen werden kann. Es ist sicherlich nicht so effizient wie ohne Reflexion, aber ich brauchte Flexibilität. –