Veröffentlicht 18. Dezember 200915 j Ich habe: 3 Listen, die logisch miteinander verknüpft sind (Oberstes Element in der linken Liste ist Ausgangswert, mittlere Liste ist Endwert und rechte Häufigkeit) Ich möchte: Sortieren. Wie in einer Datenbank. Wenn möglich nach allen drei Listen, es würde aber auch erstmal in Abhängigkeit von der ersten Liste reichen. Ich frage: Muss ich nun einen eigenen Suchalgorithmus schreiben, der die "Verbindung" berücksichtigt? Oder gibt es einen guten und schnellen Weg per QuickSort, den ich nicht sehe? Möglicherweise ein Code-Beispiel da? Done: Google (Suchwörter in Kombinationen: sortieren, abhängigkeiten, listview, listbox, liste, spalte, verbindungen, linkungen, relationen (und die englischen Gegenstücke)) Schön wäre: Deine Einschätzung oder eine Idee. Lg Kevin
18. Dezember 200915 j Man kann sich das Leben auch schwer machen! Man nehme statt 3 ListViews 1 ListView mit 3 Spalten und voilá //Initialisierung der benötigten Variablen und Arrays für die Einzelausgabe ArrayList myAL = new ArrayList(); int zaehlen = 0; int neuer_zeahlen = 0; bool enthalten = false; string[][] pairs = new string[linesCount - counting][]; for (int o = 0; o < linesCount - counting; o++) { pairs[o] = new string[3]; } string[][] neu = new string[linesCount - counting][]; for (int o = 0; o < linesCount - counting; o++) { neu[o] = new string[3]; } string[][] columns = new string[pairs.Length - 1][]; for (int i = 0; i < pairs.Length - 1; i++) { columns[i] = new string[3]; } /* Übertragung in Ausgangsarray von Arrays nur wenn Unterschied zwischen Post- und Pre-Wert vorliegt */ for (int pair = 0; pair < listView1.Items.Count; pair++) { if (listView1.Items[pair].Text != listView2.Items[pair].Text) { pairs[zaehlen][0] = listView1.Items[pair].Text; pairs[zaehlen][1] = listView2.Items[pair].Text; zaehlen++; } } /* Vergleich der Inhalte, um Wiederholungen aufzufangen und den Counter- Wert des Arrays im Array um 1 zu erhöhen */ for (int count = 0; count < pairs.Length; count++) { for (int count2 = 0; count2 < pairs.Length; count2++) { if ((pairs[count][0] == neu[count2][0]) && (pairs[count][1] == neu[count2][1])) { enthalten = true; pairs[count2][2] = (Convert.ToInt32(neu[count2][2]) + 1). ToString(); break; } else { enthalten = false; } } if (!enthalten) { //Übertragung der Werte in Array v. Arrays, wenn keine Wiederholung neu[neuer_zeahlen] = pairs[count]; columns[neuer_zeahlen][0] = neu[neuer_zeahlen][0]; columns[neuer_zeahlen][1] = neu[neuer_zeahlen][1]; neuer_zeahlen++; } } for (int u = 0; u < neuer_zeahlen; u++) { //Übertragung der zugehörigen Counter-Werte und Ausgabe in ListView columns[u][2] = (Convert.ToInt32(pairs[u][2]) + 1).ToString(); ListViewItem meiomei = new ListViewItem(columns[u]); listView4.Columns[2].ListView.Items.Add(meiomei); } Bearbeitet 18. Dezember 200915 j von yamukud Formatierung
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.