logo
CSharp_Prog_Guide

Неявно типизированные массивы11

Можно создать неявно типизированный массив, в котором тип экземпляра массива получается из элементов, указанных в инициализаторе массива. Правила для неявно типизированной переменной также применяются к неявно типизированным массивам.

Неявно типизированные массивы обычно используются в выражениях запроса вместе с анонимными типами и инициализаторами объектов и коллекций.

В следующих примерах показано, как создать неявно типизированный массив:

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"}

};

}

}

В предыдущем примере обратите внимание на то, что для неявно типизированных массивов квадратные скобки в левой части оператора инициализации не используются. Кроме того, следует обратить внимание на то, что инициализация массивов массивов, как и одномерных массивов, выполняется с помощью new []. Многомерные неявно типизированные массивы не поддерживаются.

Implicitly-typed Arrays in Object Initializers

When you create an anonymous type that contains an array, the array must be implicitly typed in the type's object initializer. In the following example, contacts is an implicitly-typed array of anonymous types, each of which contains an array named PhoneNumbers. Note that the var keyword is not used inside the object initializers.

var contacts = new[]

{

new {

Name = " Eugene Zabokritski",

PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }

},

new {

Name = " Hanying Feng",

PhoneNumbers = new[] { "650-555-0199" }

}

};