SystemCrash Geschrieben 24. August 2009 Teilen Geschrieben 24. August 2009 Hi Community, ich schreibe aktuell eine Import-Funktion für CSV-Dateien. Seit ca. 1 Woche kämpfe ich mit dem Problem, die Daten der DB (list1) mit den Importdaten (list2) zu synchronisieren. Ich benutze Visual Studio 2005. (2008 darf nicht verwendet werden) list1 wird mit list2 erfolgreich verglichen, jedoch der letzte Prüfvorgang, der abprüft, ob sich das aktuelle item (in meinem Fall Instanz einer Meldungsklasse) bereits in der "fehlendeEintraege"(liste) befindet. Problem der ganzen Sache: Beim letzten Vergleich, wie im letzten Absatz beschrieben, kommt immer das gleiche Ergebnis raus - das aktuelle Item ist in der Liste "fehlendeEintraege" nicht vorhanden. (jedoch ist dieses bereits vorhanden!!!) versuchte Methoden/Techniken: - Contains(obj) - Equals(obj) - IndexOf(i) (auf -1 prüfen) - per Schleife durchlaufen und direkt prüfen verblüffend: --> wenn ich alle Properties der Instanz mit allen Properties der anderen Instanz vergleiche, so macht er es richtig und gibt mir den richtigen Wert zurück. Direkter Vergleich beider Instanzen führt zum falschen Ergebnis. Zur Verdeutlichung: --> 3 Listen werden verwendet (1. DB-Files, 2. Import-Files, 3. Ergebnisliste in der die zu importierenden Daten aufgenommen werden) Ich hoffe Ihr könnt mir helfen! Gruß SystemCrash Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 24. August 2009 Teilen Geschrieben 24. August 2009 Hat diese "Meldungsklasse" denn eine Equals-Methode, oder wie wird der Vergleich durchgeführt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SystemCrash Geschrieben 24. August 2009 Autor Teilen Geschrieben 24. August 2009 Ja, habe ich implementiert und auf meine Klassenobjekte abgestimmt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0815FIA Geschrieben 24. August 2009 Teilen Geschrieben 24. August 2009 Meine Glaskugel sagt mir, das deine Methode falsch ist Code? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kosinator Geschrieben 24. August 2009 Teilen Geschrieben 24. August 2009 Was ich gerne bei Listen mache ist nicht mit Foreach durchgehen, sondern mit for(i = list.Lenght - 1, i>=0, i--) (oder so), dann kann ich auch Items aus der betrachtenden Liste entfernen. Ob das für dein besagtees Problem was nützt, steht jedoch auf einem anderen Blatt^^ gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mo0N Geschrieben 25. August 2009 Teilen Geschrieben 25. August 2009 Was ich gerne bei Listen mache ist nicht mit Foreach durchgehen, sondern mit for(i = list.Lenght - 1, i>=0, i--) (oder so), dann kann ich auch Items aus der betrachtenden Liste entfernen. StreamReader str = new StreamReader(sFile); str.ReadLine(); while (str.EndOfStream == false) { String[] stemp = str.ReadLine().Split(';'); //<- kann natürlich auch ein anderes Trennzeichen sein for (int i = 0; i < stemp.Length; i++) { //Hier suchst du einfach den aktuellen Wert in der DB //müsste doch mit SQL ein wirklich leichtes sein? } } str.Close(); Da hast du doch die Lösung schon fast komplett vorgekaut Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0815FIA Geschrieben 25. August 2009 Teilen Geschrieben 25. August 2009 (bearbeitet) Die Listen sind bereits gefüllt, er benötigt also wohl keine Methoden um die csv zu splitten... Ich kann mich nur wiederholen, Code? Ich versteh das nicht, wenn du die Equals Methode überschreibst und dort alle Properties vergleichst, wieso kommt dabei was anderes heraus als beim direkten Vergleich... :/ Bearbeitet 25. August 2009 von 0815FIA Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SystemCrash Geschrieben 28. August 2009 Autor Teilen Geschrieben 28. August 2009 HI @ll.. war mein Fehler, hab nicht drangedacht das man zwei versch. Instanzen einer Klasse nicht wie zwei Wertetypen vergleichen kann... Somit bekam ich beim Vergleich der Properties (Wertevergleich) mein gewün. Ergebnis und anders beim Referenzvergleich eben das Gegenteil! Danke für alle Mühen und Antworten! Gruß SysCrash Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.