Entwickler-Ecke
C# - Die Sprache - Max/Min in einer Liste
Vitalic - Mo 04.10.10 15:55
Titel: Max/Min in einer Liste
Hallo,
wie kann ich in einer Liste Max bzw. Min bestimmen?
Möchte ungern Schleifen benutzen und dann noch if-Abfragen machen!
Es muss doch eine Methode geben, die das macht?
List<int> myList= new List<int>() { 0, 2, 35, 6, 3, -2 };
...
Gruß, Vitalic
bakachan - Mo 04.10.10 16:02
Bin mir jetzt nicht ganz sicher ob das bei 3.5 scon vorhanden war oder erst bei 4.0 kam aber wie wärs mit:
1. Möglichkeit
C#-Quelltext
1:
| int max = myList.Max(); |
2. Möglichkeit
Du lässt die Liste sortieren und nimmst dann den ersten und den letzten Wert.
3. Möglichkeit
Du durchläufst 1 mal deine Liste und sucht dir dabei einfach die min und max werte raus.
(das sind ja nur wenige Zeilen)
Vitalic - Mo 04.10.10 16:14
Danke bakachan,
das mit der ersten Möglichkeit habe ich auch davor versucht, hat aber auch nicht funktioniert, vielleicht erst ab 4.0
Habe das mal so gemacht:
int ll = myList.Max(ob => ob);
Gruß, Vitalic
Kha - Mo 04.10.10 17:56
Vitalic hat folgendes geschrieben : |
das mit der ersten Möglichkeit habe ich auch davor versucht, hat aber auch nicht funktioniert |
Sollte es aber, da es exakt äquivalent ist zu
Max(x => x) :gruebel: .
Vitalic - Mo 04.10.10 18:15
@ Kha
Stimmt, es klappt doch :)...
Aber wie bekomme ich das Maximum, wenn ich eine Liste in Liste habe?
List<List<Werte>> maxWert = new List<List<Werte>>();
Die Klasse Werte besitzt eine Methode "getWert()"
geht das so?
double max = maxWert.Max(obj1 => (obj2 => obj2.getWert()));
Gruß, Vitalic
Kha - Mo 04.10.10 18:34
Vitalic hat folgendes geschrieben : |
Die Klasse Werte besitzt eine Methode "getWert()" |
Wir sind hier doch nicht bei Java :D .
Vitalic hat folgendes geschrieben : |
geht das so?
double max = maxWert.Max(obj1 => (obj2 => obj2.getWert())); |
Kann es sein, dass du mit Lambda-Ausdrücken noch nicht sonderlich viel anfangen kannst ;) ? Solange ich würde ich dann doch lieber weiter mit Schleifen arbeiten. Wie auch immer, mit einem zweiten Max würde es so funktionieren:
C#-Quelltext
1:
| double max = maxWert.Max(list => list.Max(obj => obj.getWert())); |
Vitalic - Mo 04.10.10 23:13
Danke Kha.
Ja ich habe früher nur mit Java programmiert und muss jetzt auf C# umsteigen.
Vielleicht kurze Frage außerhalb des Themas.
Darf man so Methoden setter und getter in C# schreiben?
Ich meine, es funktioniert ja :)
Und wozu hat man den Datentyp String in klein und groß?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public double getWert() { return wert; }
public void getWert(double wert) { this.wert = wert; } |
Moderiert von
Kha: C#-Tags hinzugefügt
Kha - Mo 04.10.10 23:41
Vitalic hat folgendes geschrieben : |
Vielleicht kurze Frage außerhalb des Themas. |
Eigentlich gilt "Ein Thread, eine Frage", aber wenn ich es schon losgetreten habe :) ...
Erlaubt ist natürlich alles, was funktioniert, aber in einer Sprache, die Properties kennt, wären solche Methoden gelinde gesagt Blödsinn ;) . Und
string ist ein Alias für
System.String wie es
int für
System.Int32 ist.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!