C# Min und Max Wert aus Liste suchen


Startseite Forum Ausbildungsblöcke Anwendungsentwickler C# Min und Max Wert aus Liste suchen

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #109114
    Grisu1982
    Teilnehmer

    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?

    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 muss das auch im Prüfungsstreß hinbekommen.:confused:

    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

    #126621
    Angela
    Moderator
    Grisu1982;70999 wrote:
    Ich dachte ich durchlaufe alle X,Y,Z Werte in einer Schleife und suche darin den min und max Wert.

    Genauso würde ich es auch machen…;)

    Da ich C# nicht kenne, kann ich leider auch nicht sagen, ob es für solche zwecke vordefinierte Funktionen gibt. Die Lösung mit der Schleife funktioniert aber in jedem Fall.

    #126622
    shifty
    Teilnehmer

    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.

    Wir können dir sicherlich besser weiterhelfen, wenn du einmal die Definition der Objekte zeigen könntest.

    #126623
    shifty
    Teilnehmer

    Vielleicht hilft dir ja mein Lösungsansatz ein wenig weiter:

    Zunächst einmal 2 Klassen („_3DObject“ und „GenericList“ <- siehe Anhänge)

    Neue Liste:

    [PHP]GenericList MyList = new GenericList();[/PHP]

    Wert in List einfügen:

    [PHP]_3DObject test = new _3DObject();

    test.X=doublevaluefuerX;
    test.Y=doublevaluefuerY;
    test.Z=doublevaluefuerZ;

    MyList.Add(test);[/PHP]

    Min und Max bestimmen (Beispiel für X):

    [PHP]double Min_X=9999999;
    double Max_X=-9999999;

    foreach(_3DObject o in MyList.GetEnumerator())
    {
    if(o.X > Max_X)
    Max_X=o.X;
    else if(o.X < Min_X)
    Min_X=o.X;
    }[/PHP]

    Nach durchlauf der Schleife hast du Min und Max für X.

    MfG

    shifty

    #126624
    Anonym

    Nehmen wir an:
    Du hättest eine Liste aus 3Dobjekten.

    List meine3DObjekte = new List();

    meine3DObjekte.Add(new my3DObject(31));
    meine3DObjekte.Add(new my3DObject(500));
    meine3DObjekte.Add(new my3DObject(100));

    ____________________________________________________________

    Deine 3DObjekt Klasse sieht ungefähr so aus:

    public class my3DObject
    {
    private double _zahl1;

    public double Koordinate
    {
    get
    {
    return _zahl1;
    }
    set
    {
    _zahl1 = value;
    }
    }

    public my3DObject(double zahl)
    {
    _zahl1 = zahl;
    }
    }

    __________________________________________________________
    Dann kannst du so über LINQ direkt das maximum auslesen und zwar nicht nur die Zahl sondern bekommst direkt das ganze 3DObjekt mit der größten Koordinate. Als Funktion würde das so aussehen:

    public my3DObject GetMaxKoordinaten_3DObject()
    {
    return _meine3DObjekte.Select(i => i)
    .Where(j => j.Koordinate == _meine3DObjekte.Max(i => i.Koordinate))
    .Last();
    }

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Das Forum „Anwendungsentwickler“ ist für neue Themen und Antworten geschlossen.
Momentan aktive Benutzer: 0
No users are currently active
Aktive Benutzer in den letzten 24 Stunden: 1
theresevsp
Keymaster | Moderator | Participant | Spectator | Blocked
Additional Forum Statistics
Threads: 1.488, Posts: 22.646, Members: 10.981
Welcome to our newest member, theresevsp
Most users ever online was 5 on 16. September 2020 22:11