ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
684
684
EMPFEHLEN
-
Hi,
c#
hoffe das ist der richtige Bereich...
ich hab ein kleines Syntaxproblem mit der Find Methode bezüglich der Listen.
Also ich habe eine Liste, in deriIch Objekte ablege.
Jedes Objekt hat eine Variable ID.
Jetzt will ich die Liste, also die Objekte nach einer bestimmten ID durchsuchen.
Wollte hierfür mal die gegebene Find Methode ausprobieren, nur ich weiß nicht was ich da als "Prädikat" übergeben muss?
der bsp Code in der msdn finde ich mehr verwirrend als hilfreich.
danke
-
Ist eigentlich ganz einfach, fande es Anfangs auch verwirrend:
Du musst die Adresse einer Funktion übergeben, die einen boolschen Rückgabewert hat. Die Funktion soll ermitteln, ob es sich bei einem bestimmten Objekt aus deiner Liste um einen "Treffer" handelt, also ob das Objekt die Suchkriterien erfüllt. Hier ein Beispiel:
Ist damit alles klar?Code vbnet:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Sub Main() Dim Liste As New List(Of MeinObjekt) For i As Integer = 0 To 9 Liste.Add(New MeinObjekt(i)) Next ' Jetzt nach Objekt mit ID=4 suchen: Dim result As MeinObjekt = Liste.Find(AddressOf PrädikatFunktion) End Sub Private Function PrädikatFunktion(ByVal TestObjekt As MeinObjekt) As Boolean Return (TestObjekt.ID = 4) End Function Private Class MeinObjekt Public ID As Integer Public Sub New(ByVal ID As Integer) Me.ID = ID End Sub End Class
EDIT: Sehe gerade, dass du dir C# wünscht, habe aber VB.Net-Code angegeben. Falls du den nicht lesen kannst, dann verwende einen Code-Translator.
EDIT2: Merke gerade, dass der Code-Translator nicht mit Umlauten zurecht kommt... musst halt das "ä" entfernen
Geändert von Shakie (26.12.09 um 13:53 Uhr)
hihi = -h²
-
26.12.09 14:09 #3
- Registriert seit
- Oct 2007
- Beiträge
- 325
Dann nimm besser diesen, der unterstützt Umlaute.
-
Hi,
danke
vb ist mir nicht ganz unbekannt, daher geht es...
das es sowas wie ein code translater gibt, wußte ich garnicht, danke
ich verstehe aber noch nicht was du in der funktion machst, könntest du das nochmal genauer erklären?
Code :1 2 3
Private Function PrädikatFunktion(ByVal TestObjekt As MeinObjekt) As Boolean Return (TestObjekt.ID = 4) End Function
danke
-
Die Funktion gibt True zurück, wenn die ID des Testobjekts gleich 4 ist, andernfalls False.
hihi = -h²
-
ok, also die Überprüfung selbst, die die Find Methode benutzen soll, das macht sinn
aber in dem Bsp bekomme ich das Objekt ja zurück, was ich brauche ist der Index, an welcher stelle das gesuchte Objekt sich in der Liste befindet, damit ich das bearbeiten kann.
Geht dies überhaupt?
und ist eine selbstgeschriebene Suche in der Liste, standartmässig Langsamer als die fertigen Methoden?
-
ok, habs selbst gefunden gibt ja FindIndex()
nur habe ich noch ein Problem mit den übergabe Parameter der Prädikatfunktion, du übergibst ja einfach die Addresse und suchst nach einen festen Inhalt. Ich möchte aber den zu Suchenden Inhalt übergeben, dies nimmt er leider bei dem Aufruf nicht an.
Wie kann ich das machen?
-
Ähnliche Themen
-
verkettete Liste mit Objekten C++ CLI
Von ogy im Forum C/C++Antworten: 0Letzter Beitrag: 21.05.10, 23:41 -
Verkettete Liste mit Objekten
Von dayhawk im Forum JavaAntworten: 3Letzter Beitrag: 18.11.07, 19:48 -
Liste mit Objekten als Index?
Von cubeless im Forum JavaAntworten: 2Letzter Beitrag: 19.10.07, 00:20 -
Serialisierung von Objekten in einer Liste
Von steffi1985 im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 16.06.05, 22:21 -
Zeichnen von Objekten mit verketteter Liste
Von ZAntjeZ im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 30.07.04, 20:38





Zitieren
Login





