Exportar (0) Imprimir
Expandir 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.ToDictionary<TSource, TKey> (Método) (IEnumerable<TSource>, Func<TSource, TKey>)

Crea una clase Dictionary<TKey, TValue> a partir de una interfaz IEnumerable<T> según una función del selector de claves especificada.

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

public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

Parámetros de tipo

TSource

Tipo de los elementos de source.

TKey

Tipo de la clave devuelta por keySelector.

Parámetros

source
Tipo: System.Collections.Generic.IEnumerable<TSource>
Objeto IEnumerable<T> a partir del cual se va a crear Dictionary<TKey, TValue>.
keySelector
Tipo: System.Func<TSource, TKey>
Función para extraer una clave a partir de cada elemento.

Valor devuelto

Tipo: System.Collections.Generic.Dictionary<TKey, TSource>
Un objeto Dictionary<TKey, TValue> que contiene claves y valores.

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#).

ExcepciónCondición
ArgumentNullException

source o keySelector es null.

O bien

keySelector genera una clave cuyo valor es null.

ArgumentException

keySelector genera claves duplicadas para dos elementos.

El método ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) utiliza el comparador de igualdad predeterminado Default para comparar las claves.

En el ejemplo de código siguiente se muestra cómo se utiliza ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) para crear un objeto Dictionary<TKey, TValue> mediante un selector de claves.


            class Package
            {
                public string Company { get; set; }
                public double Weight { get; set; }
                public long TrackingNumber { get; set; }
            }

            public static void ToDictionaryEx1()
            {
                List<Package> packages =
                    new List<Package>
                        { new Package { Company = "Coho Vineyard", Weight = 25.2, TrackingNumber = 89453312L },
                          new Package { Company = "Lucerne Publishing", Weight = 18.7, TrackingNumber = 89112755L },
                          new Package { Company = "Wingtip Toys", Weight = 6.0, TrackingNumber = 299456122L },
                          new Package { Company = "Adventure Works", Weight = 33.8, TrackingNumber = 4665518773L } };

                // Create a Dictionary of Package objects, 
                // using TrackingNumber as the key.
                Dictionary<long, Package> dictionary =
                    packages.ToDictionary(p => p.TrackingNumber);

                foreach (KeyValuePair<long, Package> kvp in dictionary)
                {
                    Console.WriteLine(
                        "Key {0}: {1}, {2} pounds",
                        kvp.Key,
                        kvp.Value.Company,
                        kvp.Value.Weight);
                }
            }

            /*
             This code produces the following output:

             Key 89453312: Coho Vineyard, 25.2 pounds
             Key 89112755: Lucerne Publishing, 18.7 pounds
             Key 299456122: Wingtip Toys, 6 pounds
             Key 4665518773: Adventure Works, 33.8 pounds
            */



.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:
© 2014 Microsoft