カテゴリー
C

デリゲートを使った配列の区分

using System;
using System.Collections;

namespace Chapter01All
{
    delegate ArrayList Ary(int[] ary, int x, int y);
    class DelegateLambdaSample2
    {
        static void Main()
        {
            int[] test = { 0, 5, 10, -5, 2, 7, -3 };

            Ary aryOp = AryCreate;
            var ary = aryOp(test, -99, -1);
            foreach (int x in ary)
                Console.Write(x + " ");
            Console.WriteLine();

            Ary aryOp2 = (aary, n, m) =>
            {
                ArrayList ans = new ArrayList();
                for (int i = 0; i < aary.Length; i++)
                {
                    if(aary[i] >= n & aary[i] <= m)
                    ans.Add(aary[i]);
                }
                return ans;
            };

            var ary2 = aryOp2(test, 0, 99);
            foreach (int x in ary2)
                Console.Write(x + " ");

        }
        static ArrayList AryCreate(int[] ary, int a, int b)
        {
            ArrayList ans = new ArrayList();
            for (int i = 0; i < ary.Length; i++)
                if( ary[i] >= a & ary[i] <= b)
                ans.Add(ary[i]);
            return ans;
        }
    }
}

配列testから負の要素の配列と正の要素の配列を作って見ました。片方はステートメント形式のラムダを使ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system