Compartir a través de


Cómo: Usar matrices y variables locales con tipo implícito en expresiones de consulta (Guía de programación de C#)

Actualización: noviembre 2007

Debe utilizar variables locales con tipo implícito para almacenar tipos anónimos. También puede utilizarlas en cualquier otra situación en la que desee que el compilador determine el tipo de una variable local (es decir, una variable declarada en el ámbito de método). En los ejemplos siguientes se muestra cómo utilizar variables con tipo implícito en ambos escenarios.

Las variables locales con tipo implícito se declaran utilizando la palabra clave contextual var. Para obtener más información, consulte Variables locales con asignación implícita de tipos (Guía de programación de C#) y Matrices con asignación implícita de tipos (Guía de programación de C#).

Ejemplo

En el ejemplo siguiente se muestra cómo utilizar la palabra clave var en un escenario habitual donde es necesaria: al crear y ejecutar una expresión de consulta que genera una secuencia de tipos anónimos. Tenga en cuenta que en este escenario se debe aplicar la asignación de tipos implícitos no sólo a la variable de consulta, sino también a la variable de iteración de la instrucción foreach utilizando var.

private static void QueryNames(char firstLetter)
{
    // Create the query. var is required because
    // the query produces a sequence of anonymous types.
    var studentQuery =
        from student in students
        where student.FirstName[0] == firstLetter
        select new { student.FirstName, student.LastName };

    // Execute the query.
    foreach (var student in studentQuery)
    {
        Console.WriteLine("First = {0}, Last = {1}", student.FirstName, student.LastName);
    }
}

En el ejemplo que se muestra más adelante en este tema se indica cómo utilizar la palabra clave var como conveniencia sintáctica incluso cuando no se requiere. Para mostrar esta construcción, solamente la variable de consulta tiene tipo implícito. La variable de iteración de la instrucción foreach tiene un tipo explícito, pero también se puede declarar utilizando var. Recuerde que var no es un tipo, sino una instrucción para que el compilador deduzca y asigne el tipo.

var queryID =
    from student in students
    where student.ID > 111
    select student.LastName;

foreach (string str in queryID)
{
    Console.WriteLine(str);
}

Vea también

Conceptos

Guía de programación de C#

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

Referencia

Métodos de extensión (Guía de programación de C#)

var (Referencia de C#)

Otros recursos

Language-Integrated Query (LINQ)