暗黙的に型指定される配列 (C# プログラミング ガイド)

配列初期化子に指定された要素から配列インスタンスの型が推論される、暗黙的に型指定される配列を作成できます。 暗黙的に型指定される変数の規則が、暗黙的に型指定される配列にも適用されます。 詳細については、「暗黙的に型指定されるローカル変数」を参照してください。

通常、暗黙的に型指定される配列は、匿名型、オブジェクト初期化子、およびコレクション初期化子と共に、クエリ式で使用されます。

暗黙的に型指定される配列の作成方法の例を次に示します。

class ImplicitlyTypedArraySample
{
    static void Main()
    {
        var a = new[] { 1, 10, 100, 1000 }; // int[]
        var b = new[] { "hello", null, "world" }; // string[]

        // single-dimension jagged array
        var c = new[]   
        {  
            new[]{1,2,3,4},
            new[]{5,6,7,8}
        };

        // jagged array of strings
        var d = new[]   
        {
            new[]{"Luca", "Mads", "Luke", "Dinesh"},
            new[]{"Karen", "Suma", "Frances"}
        };
    }
}

前の例の暗黙的に型指定される配列では、初期化ステートメントの左側に角かっこは使用されていません。 また、ジャグ配列は、1 次元配列と同じように new [] を使用して初期化されます。

オブジェクト初期化子で暗黙的に型指定される配列

配列が含まれた匿名型を作成する場合、その型のオブジェクト初期化子で配列を暗黙的に型指定する必要があります。 次の例では、contacts は匿名型の暗黙的に型指定された配列で、それぞれに PhoneNumbers という名前の配列が含まれています。 オブジェクト初期化子の内部に var キーワードは使用されていません。

var contacts = new[] 
{
    new {
            Name = " Eugene Zabokritski",
            PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }
        },
    new {
            Name = " Hanying Feng",
            PhoneNumbers = new[] { "650-555-0199" }
        }
};

参照

C# プログラミング ガイド
暗黙的に型指定されるローカル変数
配列
匿名型
オブジェクト初期化子とコレクション初期化子
var
LINQ クエリ式