Condividi tramite


Matrici tipizzate in modo implicito (Guida per programmatori C#)

Aggiornamento: novembre 2007

È possibile creare una matrice tipizzata in modo implicito nella quale il tipo dell'istanza della matrice viene dedotto dagli elementi specificata nell'inizializzatore di matrice. Le regole per qualsiasi variabile tipizzata in modo implicito si applicano anche alle matrici tipizzate in modo implicito. Per ulteriori informazioni, vedere Variabili locali tipizzate in modo implicito (Guida per programmatori C#).

Le matrici tipizzate in modo implicito vengono in genere utilizzate nelle espressioni di query insieme ai tipi anonimi e agli inizializzatori di oggetto e di insieme.

Negli esempi seguenti viene illustrato come creare una matrice tipizzata in modo implicito:

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

Nell'esempio precedente, si noti che con le matrici tipizzate in modo implicito, non vengono utilizzate le parentesi quadre sul lato sinistro dell'istruzione di inizializzazione. Si noti inoltre che le matrici di matrici vengono inizializzate utilizzando new [] esattamente come le matrici unidimensionali. Le matrici multidimensionali tipizzate in modo implicito non sono supportate.

Matrici tipizzate in modo implicito negli inizializzatori di oggetto

Quando si crea un tipo anonimo che contiene una matrice, la matrice deve essere tipizzata in modo implicito nell'inizializzatore di oggetto del tipo. Nell'esempio seguente, contacts è una matrice tipizzata in modo implicito di tipi anonimi, ognuno dei quali contiene una matrice denominata PhoneNumbers. Si noti che la parola chiave var non viene utilizzata negli inizializzatori di oggetto.

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

Vedere anche

Concetti

Guida per programmatori C#

Espressioni query LINQ (Guida per programmatori C#)

Riferimenti

Variabili locali tipizzate in modo implicito (Guida per programmatori C#)

Matrici (Guida per programmatori C#)

Tipi anonimi (Guida per programmatori C#)

Inizializzatori di oggetto e di insieme (Guida per programmatori C#)

var (Riferimenti per C#)