Matrizes de tipo implícito (Guia de Programação em C#)
Você pode criar uma matriz do tipo implícito no qual o tipo de ocorrência de array é inferido de elementos especificados no inicializador de matriz. As regras para qualquer variável de tipo implícito também se aplicam a matrizes do tipo implícito. Para obter mais informações, consulte Variáveis locais de tipo implícito (Guia de Programação em C#).
Matrizes do tipo implícito geralmente são usados 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 [] como matrizes de dimensão única.
Matrizes 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 tipo implícito de tipos anônimos, cada qual contendo uma matriz chamada PhoneNumbers. Observe que o var palavra-chave não é usado nos 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
Variáveis locais de tipo implícito (Guia de Programação em C#)
Matrizes (Guia de Programação em C#)
Tipos anônimos (Guia de Programação em C#)
Inicializadores de objeto e coleção (Guia de Programação em C#)