rima_1412 Geschrieben 30. März 2010 Geschrieben 30. März 2010 Hallo zusammen, benötige dringend Hilfe. Ich habe ein Array mit 2 Spalten. Sieht so aus: 5 Test 9 Bla 6 Text So und nun soll das Anhand der ersten Spalte abwärts sortiert werden. Dabei sollen die beiden Spalten aber auch noch zueinander passen. 9 Bla 6 Text 5 Test Wie gehts das in C#??? :confused::confused::confused: Gruß Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 ist doch nichts anderes, als ein eindimensionales array zu sortieren. Der einzige unterschied ist, dass du beim Dreieckstausch nicht nur ein Feld tauschst, sondern beide Spalten Zitieren
rima_1412 Geschrieben 30. März 2010 Autor Geschrieben 30. März 2010 array.sort() geht nur bei eindimensionalen Arrays. Und was meinst du bitte mit Dreieckstausch? Ich steh gerade auf dem Schlauch sorry! Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 array.sort() geht nur bei eindimensionalen Arrays. Ich habe auch nicht davon geredet, eine vorgefertigte Methode des Frameworks zu nutzen. Du wirst wohl einen eigenen Sortier-Algorithmus schreiben müssen. Nach welchem Verfahren dieser Arbeiten soll liegt bei dir. Aber hier mal ein paar Stichwörter dazu: Bubblesort Quicksort Selectionsort Da werden Möglichkeiten beschrieben, Daten zu sortieren. Für eine dieser Möglichkeiten musst du dich entscheiden und das Ganze in Quelltext "umwandeln" Zitieren
Guybrush Threepwood Geschrieben 30. März 2010 Geschrieben 30. März 2010 static void Main(string[] args) { string[][] list = new string[][] { new string[] { "5", "Test" }, new string[] { "9", "Bla" }, new string[] { "6", "Text" } }; var sortetList = from l in list orderby l[0] descending select l; }[/PHP] Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 Die Variante kannte ich auch noch nicht. Ist doch immer wieder schön, was neues zu lernen^^ Zitieren
xk4fu Geschrieben 30. März 2010 Geschrieben 30. März 2010 da c# gefragt ist, hier bidde ;-) string[,] list = { { "5", "Test" }, { "9", "Bla" }, { "6", "Text" }}; string sTmpPos1 = ""; string sTmpPos2 = ""; for (int i = 0; i < list.GetLength(0); i++) for (int j = i + 1; j < list.GetLength(0); j++) { if(Convert.ToInt32(list.GetValue(i, 0)) > Convert.ToInt32(list.GetValue(j, 0))) { sTmpPos1 = list.GetValue(i, 0).ToString(); sTmpPos2 = list.GetValue(i, 1).ToString(); list.SetValue(list.GetValue(j, 0), i, 0); list.SetValue(list.GetValue(j, 1), i, 1); list.SetValue(sTmpPos1, j, 0); list.SetValue(sTmpPos2, j, 1); } } } Zitieren
TDM Geschrieben 30. März 2010 Geschrieben 30. März 2010 hmm, bin wohl der Einzige, der daran denkt. :beagolisc Zitieren
Guybrush Threepwood Geschrieben 30. März 2010 Geschrieben 30. März 2010 da c# gefragt ist, gab es irgendwo eine nicht C# Lösung?:confused: Zitieren
LadyPreis Geschrieben 30. März 2010 Geschrieben 30. März 2010 gab es irgendwo eine nicht C# Lösung?:confused: LINQ sieht halt auf den ersten Blick nicht gerade nach C# aus Zitieren
xk4fu Geschrieben 30. März 2010 Geschrieben 30. März 2010 LINQ sieht halt auf den ersten Blick nicht gerade nach C# aus ne, sieht nur so aus, dass es nur mit entsprechendem .net framework läuft, und es muss nicht jeder das aktuelle haben... :old Zitieren
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.