Hirdetés

Új hozzászólás Aktív témák

  • Zalanius

    tag

    válasz amdni #8609 üzenetére

    Ez nem pont a keresett megoldás lesz, de miközben olvastam a kódodat, eszembe jutott pár dolog. Például van már létező osztály kétszeres láncolt listára, és extension methodokkal simán számol átlagot is minden egyéb nélkül. De ha valamit mélyebben berhelni kell, az sem probléma, példaként ott egy customsum. Dividebyzeroval most nem vacakoltam.

    class Program
    {
    static void Main(string[] args)
    {
    int[] costs = new int[] { 10, 20, 1 };
    var linkedcosts = new MyList<int>(costs);
    int costsum = linkedcosts.CustomSum();
    double costavg = costsum / (double)linkedcosts.Count;
    int costsum2 = linkedcosts.Sum();
    double costavg2 = linkedcosts.Average();

    string[] names = new string[] { "Gips", "Jacob" };
    var linkednames = new MyList<string>(names);
    string namessum = linkednames.CustomSum();
    string namessum2 = linkednames.Aggregate("", (c, n) => c + n);
    Console.ReadKey();
    }
    }

    class MyList<T> : LinkedList<T>
    {
    public MyList() : base()
    {
    }
    public MyList(IEnumerable<T> collection) : base(collection)
    {
    }

    public T CustomSum()
    {
    T sum = default(T);
    if (First == null)
    {
    return sum;
    }
    sum = First.Value;
    LinkedListNode<T> temp2 = First.Next;
    while (temp2 != null)
    {
    sum += (dynamic)temp2.Value;
    temp2 = temp2.Next;
    }
    return sum;
    }
    }

    szerk. megoldódott látom, így végül is offtopicnak is tárgytalan, de itt hagyom, hátha segít még vmit.

Új hozzászólás Aktív témák