Min und Max Wert aus Liste suchen


#1

Hallo zusammen,
ich habe grade ein kleines Problem und komme nicht ganz weiter.

Ich habe eine Liste mit 3D Punkten also X,Y,Z (double und public).
Genauer gesagt, liegen in der Liste Punkt3D Objekte mit X,Y,Z Koordinaten.

Ich muss jetzt jeweils den kleinsten und höchsten X,Y,Z Wert raussuchen.

Zuerst dachte ich es gibt bestimmt eine MIN MAX und AVG Aggregatfunktion wie in SQL oder PHP aber leider
habe ich in C# sowas nicht gefunden? :mad:

Ich weis noch aus grauer C++ vorzeit das es auch irgentwie über if, vergleiche und schleifen geht?

Hat jemand eine Idee wie ich recht einfach den MIN und MAX Wert errechne???

Ich dachte ich durchlaufe alle X,Y,Z Werte in einer Schleife und suche darin den min und max Wert.

Dankeschön für die Mühe


#2

das einfachste ist du läufst per Schleife durch deine Liste und vergleichst einfach die einzelnen Einträge und suchst die MIN/MAX


#3

Da helfen Dir aber auch keine Funktionen aus PHP oder SQL die können nämlich nur mit Skalaren Werten etwas anfangen, bei Objekten bist Du genauso auf eine Eigene Implementierung angewiesen. In C# könnte man es so machen (ungetestet):
[CSharp]
private Vector Min(Vector v1, Vector v2) {
return (v1.x < v2.x && v1.y < v2.y && v1.z < v2.z) ? v1 : v2;
}

private Vector Max(Vector v1, Vector v2) {
return (v1.x > v2.x && v1.y > v2.y && v1.z > v2.z) ? v1 : v2;
}

public Vector GetMinVector(IList vecs) {
Vector min;
foreach (Vector v in vecs)
min = Min(min, v);

return min;
}

public Vector GetMaxVector(IList vecs) {
Vector max;
foreach (Vector v in vecs)
max = Max(max, v);

return max;
}
[/CSharp]

Gut Schuß
VuuRWerK :wink: