Arrays digitados implicitamente (C# guia de programação)
Você pode criar uma matriz digitada implicitamente, no qual o tipo de ocorrência de array é inferido a partir de elementos especificados em um inicializador de matriz. As regras para qualquer variável digitada implicitamente também se aplicam a matrizes de tipo implícito. Para obter mais informações, consulte Implicitamente digitado variáveis locais (C# guia de programação).
Matrizes do tipo implícito geralmente são usadas em expressões de consulta, juntamente com os tipos anônimos e inicializadores de objeto e coleção.
Os exemplos a seguir mostram como criar uma matriz de tipo implícito:
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"}
};
}
}
No exemplo anterior, observe que, com matrizes de tipo implícito, sem colchetes são usadas no lado esquerdo da instrução de inicialização. Observe também que as matrizes denteadas são inicializados usando new [] exatamente como matrizes de dimensão única.
Conjuntos de tipo implícito no inicializadores de objeto
Quando você cria um tipo anônimo que contém uma matriz, a matriz deve ser digitada implicitamente no inicializador de objeto do tipo. No exemplo a seguir, contacts é uma matriz de tipo implícito de tipos anônimos, cada qual contendo uma matriz chamada PhoneNumbers. Observe que o var palavra-chave não é usado dentro do inicializadores de objeto.
var contacts = new[]
{
new {
Name = " Eugene Zabokritski",
PhoneNumbers = new[] { "206-555-0108", "425-555-0001" }
},
new {
Name = " Hanying Feng",
PhoneNumbers = new[] { "650-555-0199" }
}
};
Consulte também
Referência
Implicitamente digitado variáveis locais (C# guia de programação)
Tipos anônimos (guia de programação de C#)
Objeto e coleção inicializadores (guia de programação de C#)