tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
684
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    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
     

  2. #2
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    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:
    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
    Ist damit alles klar?

    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²

  3. #3
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    Zitat Zitat von Shakie Beitrag anzeigen
    Merke gerade, dass der Code-Translator nicht mit Umlauten zurecht kommt... musst halt das "ä" entfernen
    Dann nimm besser diesen, der unterstützt Umlaute.
     

  4. #4
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    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
     

  5. #5
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Die Funktion gibt True zurück, wenn die ID des Testobjekts gleich 4 ist, andernfalls False.
     
    hihi = -h²

  6. #6
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    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?
     

  7. #7
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    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?
     

  8. #8
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
     

Ähnliche Themen

  1. verkettete Liste mit Objekten C++ CLI
    Von ogy im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 21.05.10, 23:41
  2. Verkettete Liste mit Objekten
    Von dayhawk im Forum Java
    Antworten: 3
    Letzter Beitrag: 18.11.07, 19:48
  3. Liste mit Objekten als Index?
    Von cubeless im Forum Java
    Antworten: 2
    Letzter Beitrag: 19.10.07, 00:20
  4. Serialisierung von Objekten in einer Liste
    Von steffi1985 im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 16.06.05, 22:21
  5. Zeichnen von Objekten mit verketteter Liste
    Von ZAntjeZ im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 30.07.04, 20:38