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ß
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
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!
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"
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]
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^^
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); } } }
TDM Geschrieben 30. März 2010 Geschrieben 30. März 2010 hmm, bin wohl der Einzige, der daran denkt. :beagolisc
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:
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden