コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

C#の学習 No. 6 配列

配列もJavaと同様。拡張forは素直にforeach文で操作可能。
多次元配列と配列の配列が明確に分かれているのが驚き。配列の配列に慣れているので逆に違和感を覚えてしまう。
インデクサ、要は[]演算子のオーバーロードみたいな感じのものも面白い。演算子より使える機会がありそうな気がする。
以下サンプル。

namespace Sample
{
    class ArrayTest
    {
        static void Main(string[] args)
        {
            // 1次元配列
            int[] intArray = new int[3];
            for (int i = 0; i < intArray.Length; i++)
            {
                intArray[i] = i * i;
            }
            foreach (int i in intArray)
            {
                System.Console.WriteLine("intArray={0}", i);
            }

            // 2次元配列
            int[,] intArray2 = new int[2, 3];
            intArray2[0, 0] = 3;

            Foo(3, 4, 5);

            // 配列の配列(ジャグ配列)
            int[][] intArray3 = new int[2][];
            intArray3[0] = new int[4];
            intArray3[1] = new int[10];

            // インデクサテスト
            ArrayTest a = new ArrayTest();
            a[5] = 10;
            System.Console.WriteLine("a[5]={0}", a[5]);
        }

        // 可変長引数!
        static void Foo(params int[] intArray)
        {
            foreach (int i in intArray)
            {
                System.Console.WriteLine("params intArray={0}", i);
            }
        }

        private int[] values;

        public ArrayTest()
        {
            values = new int[100];
        }

        public int this[int index]
        {
            get
            {
                return values[index];
            }
            set
            {
                values[index] = value;
            }
        }
    }
}