Compartir a través de


Matrices con asignación implícita de tipos (Guía de programación de C#)

Actualización: noviembre 2007

Puede crear una matriz con tipo implícito en la que el tipo de la instancia de matriz se deduce de los elementos especificados en el inicializador de matriz. Las reglas de cualquier variable con tipo implícito también se aplican a las matrices con tipo implícito. Para obtener más información, consulte Variables locales con asignación implícita de tipos (Guía de programación de C#).

Las matrices con tipo implícito se utilizan normalmente en expresiones de consulta junto con tipos anónimos e inicializadores de objeto y colección.

En los ejemplos siguientes se muestra cómo crear una matriz con 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"}
        };
    }
}

En el ejemplo anterior, observe que con las matrices con tipo implícito no se utilizan corchetes en el lado izquierdo de la instrucción de inicialización. Observe además que las matrices escalonadas se inicializan utilizando new [] al igual que las matrices unidimensionales. No se admiten las matrices multidimensionales con tipo implícito.

Matrices con tipo implícito en inicializadores de objeto

Cuando se crea un tipo anónimo que contiene una matriz, la matriz debe tener un tipo implícito en el inicializador de objeto del tipo. En el ejemplo siguiente, contacts es una matriz con tipo implícito de tipos anónimos, cada uno de los cuales contiene una matriz denominada PhoneNumbers. Observe que la palabra clave var no se utiliza en los 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" }
        }
};

Vea también

Conceptos

Guía de programación de C#

Expresiones de consultas con LINQ (Guía de programación de C#)

Referencia

Variables locales con asignación implícita de tipos (Guía de programación de C#)

Matrices (Guía de programación de C#)

Tipos anónimos (Guía de programación de C#)

Inicializadores de objeto y de colección (Guía de programación de C#)

var (Referencia de C#)