裏口からのC#実践入門

2-12 それはリソースの無駄遣い

とりあえずIEnumerable使っておけば間違いない?

using System;
using System.Collections.Generic;
using System.Linq;

namespace Uraguchi.Scene2
{
    public class Tenshi12
    {
        private static double Calc100Average(IEnumerable<int> array)
        {
            return array.Take(100).Average();
        }

        public static void Run()
        {
            var en = Enumerable.Range(0, 10000);
            Console.WriteLine(Calc100Average(en));
        }
    }
}

2-13 Java よ安らかに眠れ

別に他言語を煽らなくても。
言語によってはよりよい書き方ができる場合があるよと。

using System;

namespace Uraguchi.Scene2
{
    public class Tenshi13
    {
        delegate int Calc(int x, int y);

        private static void DoCalc1(Calc Calc)
        {
            Console.WriteLine(Calc(2, 6));
        }

        private static void DoCalc2(Func<int ,int, int> calc)
        {
            Console.WriteLine(calc(2, 6));
        }

        public static void Run()
        {
            DoCalc1((x, y) => x + y / 2);
            DoCalc2((x, y) => x + y / 2);
        }
    }
}