¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
AsEnumerable(TSource) (Método)
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Enumerable.AsEnumerable<TSource> (Método)

Devuelve la entrada tipificada como IEnumerable<T>.

Espacio de nombres:  System.Linq
Ensamblado:  System.Core (en System.Core.dll)

public static IEnumerable<TSource> AsEnumerable<TSource>(
	this IEnumerable<TSource> source
)

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
Tipo: System.Collections.Generic.IEnumerable<TSource>
Secuencia que se va a tipificar como IEnumerable<T>.

Valor devuelto

Tipo: System.Collections.Generic.IEnumerable<TSource>
La secuencia de entrada tipificada como IEnumerable<T>.

Nota sobre el uso

En Visual Basic y C#, se puede llamar a este método como a un método de instancia en cualquier objeto de tipo IEnumerable<TSource>. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea Métodos de extensión (Visual Basic) o Métodos de extensión (Guía de programación de C#).

El método AsEnumerable<TSource>(IEnumerable<TSource>) no tiene ningún otro efecto que el de cambiar el tipo en tiempo de compilación de source de un tipo que implementa IEnumerable<T> a la propia interfaz IEnumerable<T>.

AsEnumerable<TSource>(IEnumerable<TSource>) se puede utilizar para elegir entre las implementaciones de consulta cuando una secuencia implementa IEnumerable<T>, pero también dispone de un conjunto diferente de métodos de consulta públicos. Por ejemplo, dada una clase Table genérica que implementa IEnumerable<T> y tiene sus propios métodos, como Where, Select y SelectMany, al llamar a Where se invocaría al método Where público de Table. Un tipo Table que represente una tabla de base de datos podría tener un método Where que tomara el argumento del predicado como un árbol de expresión y convirtiera el árbol en SQL para su ejecución remota. Si no es necesario realizar la ejecución remota, por ejemplo porque el predicado invoca un método local, el método AsEnumerable<TSource> se puede utilizar para ocultar los métodos personalizados y utilizar en su lugar los operadores de consulta estándar.

En el ejemplo de código siguiente se muestra cómo se utiliza AsEnumerable<TSource>(IEnumerable<TSource>) para ocultar el método Where personalizado de un tipo cuando se quiere realizar la implementación de operadores estándar.


        // Custom class.
        class Clump<T> : List<T>
        {
            // Custom implementation of Where().
            public IEnumerable<T> Where(Func<T, bool> predicate)
            {
                Console.WriteLine("In Clump's implementation of Where().");
                return Enumerable.Where(this, predicate);
            }
        }

        static void AsEnumerableEx1()
        {
            // Create a new Clump<T> object.
            Clump<string> fruitClump =
                new Clump<string> { "apple", "passionfruit", "banana", 
                    "mango", "orange", "blueberry", "grape", "strawberry" };

            // First call to Where():
            // Call Clump's Where() method with a predicate.
            IEnumerable<string> query1 =
                fruitClump.Where(fruit => fruit.Contains("o"));

            Console.WriteLine("query1 has been created.\n");

            // Second call to Where():
            // First call AsEnumerable() to hide Clump's Where() method and thereby
            // force System.Linq.Enumerable's Where() method to be called.
            IEnumerable<string> query2 =
                fruitClump.AsEnumerable().Where(fruit => fruit.Contains("o"));

            // Display the output.
            Console.WriteLine("query2 has been created.");
        }

        // This code produces the following output:
        //
        // In Clump's implementation of Where().
        // query1 has been created.
        //
        // query2 has been created.



.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft