Hi!
Also ich habe 2 Listen (list<>) angelegt, die Elemente der Listen sind vom Typ long. Beide Listen werden dynamisch aus unterschiedlichen DB- Tabellen befüllt, je nach Abfrage, d.h. beide Listen haben eine unterschiedliche Anzahl von Elementen und auch unterschiedliche Elemente. In beiden Listen ist aber genau ein Element gleich und das muss ich finden. Also im Prinzip muss jeder Wert mit jedem verglichen werden- das sind nicht so viele, max. 20 pro Liste oder so. Gibt es für sowas eine fertige Methode oder muss ich mir da selber was ausdenken?
Habe schon gesucht, aber nichts passendes dafür gefunden.
thx
Hallo tux83,
das musst du selbst programmieren. Bei ca. 20 Elementen kannst du problemlos noch zwei geschachtelte Schleifen nehmen und ganz innen jedes Element mit jedem zu vergleichen.
herbivore
Hi,
ich hab sowas mal gelöst, in dem ich den Inhalt der einen Liste in nen String gespeichert hab (über ne Schleife) und dann mit ner weiteren Schleife (der 2ten Liste) überprüft ob der Wert im String vorhanden ist.
Kann Dir aber leider ned sagen was schneller is, mir fehlts noch n bissi an allgemeiner Erfahrung 😉
Grüße,
SaberRider
ich hab sowas mal gelöst, in dem ich den Inhalt der einen Liste in nen String gespeichert hab (über ne Schleife) und dann mit ner weiteren Schleife (der 2ten Liste) überprüft ob der Wert im String vorhanden ist.
und was machst du, wenn du zB value 2 suchst aber nur den wert 20 gibt? findet er im string die 20, is aber nicht die 2 🙂 oder hast du eien gewisse syntax eingehalten ?
lg
lg Lion
Hi,
hab immer n ";" zwischenrein gesetzt und mit ner regular expression geprüft.
also
1234;15;2314;31532;1324;
etc.
Grüße,
SaberRider
OK, danke für die schnellen Antworten- ich denke ich werde das mit Schleifen machen, das scheint mir auf den ersten Blick am einfachsten zu sein.
Wenn die Listen sortiert sind, kannst du mit linearen Aufwand das doppelte Element finden.
Die doppelte Schleife hat den Aufwand O(n*k). Bei so wenigen Elementen würde sich das extra Sortieren also nicht lohnen.
reichts nicht, nur über 1 foreach über Liste1 zu machen und deren elemente e1 mit liste2.Contains(e1) zu prüfen?
loop:
btst #6,$bfe001
bne.s loop
rts
Hallo 0815Coder,
kann man auch machen.
herbivore
Ist aber das gleiche, da Contains die zweite Schleife kapselt.
natürlich macht .Contains() das.
aber wozu den code selber schreiben wenns schon wer anderer getan hat?
loop:
btst #6,$bfe001
bne.s loop
rts
Hallo Borg,
vom Aufwand her ja, dadurch dass man die zweite Schleife kapselt, kann man die erste aber leicht mit break verlassen. Contains zu verwenden hat also schon Vorteile.
herbivore
Ok, das mit dem break stimmt. Wenn ich aber eine Abbruchbedingung brauche, vewende ich eh eine while-Schleife.