Linqはすごいと信じ込まされているあなた以下のプログラムを見てください。 
どれがお気に入りですか?もっといいコードがあったら教えてください。 
そして、どの順序で速いと思いますか? 
 
static int[] cal1(int[] arr)
{
    var list =
        from a in arr
        select a;
    var sum = list.Sum();
    var count = list.Count();
    var max = list.Max();
    var min = list.Min();
    return new int[] { sum, count, max, min };
}
static int[] cal2(int[] arr)
{
    int sum = 0;
    int count = 0;
    int max = int.MinValue;
    int min = int.MaxValue;
    foreach (int a in arr)
    {
        sum += a;
        count++;
        if (max < a) max = a;
        if (min > a) min = a;
    }
    return new int[] { sum, count, max, min };
}
static int[] cal3(int[] arr)
{
    return new int[] { 
        arr.Sum(),
        arr.Count(),
        arr.Max(),
        arr.Min()
    };
}