List().Contains() ist immer false

Dieses Thema im Forum "Support & Discussion" wurde erstellt von PierreDole, 7. August 2017.

  1. PierreDole

    PierreDole New Member

    Registriert seit:
    25. Juli 2017
    Beiträge:
    16
    Zustimmungen:
    4
    Punkte für Erfolge:
    3
    Geschlecht:
    männlich
    Ort:
    De op't schöönst Stadt de Welt
    Moin,
    sorry für den einfallslosen Titel, hab um diese Uhrzeit kein Plan, wie ich diesen Post anders nennen sollte. ;)

    Ich habe die folgende List:
    Code (C#):
    List<KeyValuePair<int, string>> liste = new List<KeyValuePair<int, string>>();
    Nun will ich überprüfen, ob das ein bestimmtes KeyValuePair drin ist. Doch diese Methode ergibt immer false, obwohl genau so ein Paar drin ist. Wahrscheinlich, weil ich ein neues KeyValuePair erstelle, aber nur die Referenz verglichen wird:

    Code (C#):
    if(liste.Contains(new KeyValuePair<int, string>(1, "test")))
    Gibt es irgendeine bessere Art für diese Abfrage? Vielleicht mit liste.Select(), .Where(), oder keine Ahnung wie?
     
  2. source++

    source++ New Member

    Registriert seit:
    3. Juli 2017
    Beiträge:
    16
    Zustimmungen:
    16
    Punkte für Erfolge:
    3
    Geschlecht:
    männlich
    Also ich hab das kurz so getestet:
    Code (C#):
                var liste = new List<KeyValuePair<int, string>>();

                liste.Add(new KeyValuePair<int, string>(1, "test"));

                if (liste.Contains(new KeyValuePair<int, string>(1, "test")))
                    Console.WriteLine("true");
                else
                    Console.WriteLine("false");

                Console.ReadKey();
    Und bekomme true raus. Blöde Frage, sicher das du das KeyValuePair geaddet hast bzw. richtig geschrieben hast usw?
     
    PierreDole gefällt das.
  3. PierreDole

    PierreDole New Member

    Registriert seit:
    25. Juli 2017
    Beiträge:
    16
    Zustimmungen:
    4
    Punkte für Erfolge:
    3
    Geschlecht:
    männlich
    Ort:
    De op't schöönst Stadt de Welt
    Das überrascht mich jetzt, denn ich habe mir deswegen extra ein "Monitoring" gebastelt, das die Liste in eine Textbox schreibt und paar mal die Sekunde aktualisiert. Das Paar war mehrfach vorhanden (die vollständige Abfrage oben war: wenn's nicht drin ist, solls reingeschrieben werden). Womöglich liegt der Fehler irgendwo anders. Ich schaue mal morgen, ob ich den Fehler finde. Danke erstmal.
     
  4. 3HMonkey

    3HMonkey Administrator Mitarbeiter Administrator

    Registriert seit:
    28. Juni 2017
    Beiträge:
    40
    Zustimmungen:
    28
    Punkte für Erfolge:
    18
    Geschlecht:
    männlich
    Poste am besten mal deinen fehlerhaften Code, damit wir eine Ursachenfindung machen können. Evtl hat ja jemand wieder ein ähnliches Problem.
     
  5. PierreDole

    PierreDole New Member

    Registriert seit:
    25. Juli 2017
    Beiträge:
    16
    Zustimmungen:
    4
    Punkte für Erfolge:
    3
    Geschlecht:
    männlich
    Ort:
    De op't schöönst Stadt de Welt
    Irgendwie hat sich das von selbst erledigt. Habe mich jetzt dran gesetzt und plötzlich geht es, ohne daß ich irgendwas geändert habe. Ich hab manchmal so das Gefühl, ich werd von meinem Rechner verarscht....
     
  6. source++

    source++ New Member

    Registriert seit:
    3. Juli 2017
    Beiträge:
    16
    Zustimmungen:
    16
    Punkte für Erfolge:
    3
    Geschlecht:
    männlich
    Hatte sowas auch mal, 8-9 Stunden rum probiert und Google vergewaltigt am nächsten Tag in Visual Studio rein und ging :D
     

Diese Seite empfehlen

Die Seite wird geladen...