配列とはArray型を基底クラスに持つオブジェクトである

プログラミングC# 第6版 7.1.3


なるほど。配列の正体とはArray型を基底クラスとしたオブジェクトだったんですね。なのでさまざまなメソッド等を持っているということみたいです。

例えば配列の中の偶数だけを取ってくる処理が書く場合

using System;

class Program {
    static void Main () {
        int[] nums = new int[] {1,2,3,4,5,6};
        
        foreach(int num in nums) {
            if ( num % 2 == 0 ) {
                Console.WriteLine(num);
            }
        }
    }
}
$ main
2
4
6

この様にforeachを使って処理することになりますが、ArrayのFindAllを使えばシンプルに対象の値だけを取り出すことができます。

using System;

class Program {
    static void Main () {
        int[] nums = new int[] {1,2,3,4,5,6};
        
        // FindAllとラムダ式関数の引数を渡して処理する
        int[] result_nums = Array.FindAll(nums, num => num % 2 == 0 );
        
        foreach(int num in result_nums) {
            if ( num % 2 == 0 ) {
                Console.WriteLine(num);
            }
        }
    }
}

便利ですね。Array.FindAllはstaticメソッドですが、オブジェクトから呼べるメソッドやプロパティもいくつかあるようです。

代表的なので言えば配列の要素数を得るLengthプロパティでしょうか。

using System;

class Program {
    static void Main () {
        int[] nums = new int[] {1,2,3,4,5,6};
        
        Console.WriteLine(nums.Length);
    }
}
$ main
6

他にも色々な機能があるのでまた後でArrayクラスのリファレンスを見るようにします。

ってかこの公式のリファレンスサイト重いのなんとかならないんだろうか・・・。