Array nach kleinstem Element durchsuchen



  • Hi,

    ich such eine funktion die mir einen array durchsucht und mir das kleinste element herausgibt und die jeweilige position im array. Gibt es sowas schon fertig bei C#?

    mfg



  • Servus,

    du kannst ein Array.Sort() machen und dir das erste Element schnappen...

    mfg
    Hellsgore



  • Hellsgore schrieb:

    du kannst ein Array.Sort() machen und dir das erste Element schnappen...

    Das ist aber ineffizient. Bei großen Arrays sollte man auf jeden Fall in einer Schleife das Array durchlaufen:

    public static T SmallestElement<T>(IEnumerable<T> elements) where T : IComparable<T>
    {
        IEnumerator<T> iter = elements.GetEnumerator();
        if (!iter.MoveNext())
            throw new IndexOutOfRangeException();
        T ret = iter.Current;
        while (iter.MoveNext())
            if (iter.Current.CompareTo(ret) < 0)
                ret = iter.Current;
        return ret;
    }
    

Log in to reply