Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Método Enumerable.ToDictionary<TSource, TKey> (IEnumerable<TSource>, Func<TSource, TKey>)

Cria um Dictionary<TKey, TValue> de um IEnumerable<T> de acordo com a uma função de seletor de chave especificado.

Namespace:  System.Linq
Assembly:  System.Core (em System.Core.dll)

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

Parâmetros de tipo

TSource

O tipo dos elementos de source.

TKey

O tipo da chave retornado por keySelector.

Parâmetros

source
Tipo: System.Collections.Generic.IEnumerable<TSource>
Um IEnumerable<T> para criar um Dictionary<TKey, TValue> partir.
keySelector
Tipo: System.Func<TSource, TKey>
Uma função para extrair uma chave de cada elemento.

Valor de retorno

Tipo: System.Collections.Generic.Dictionary<TKey, TSource>
Um Dictionary<TKey, TValue> que contém as chaves e valores.

Observação de uso

No Visual Basic e no C#, você pode chamar esse método como um método de instância em qualquer objeto do tipo IEnumerable<TSource>. Quando você usar a sintaxe de método de instância para chamar esse método, omita o primeiro parâmetro. Para obter mais informações, consulte Métodos de extensão (Visual Basic) ou Métodos de extensão (guia de programação de C#).

ExceçãoCondição
ArgumentNullException

sourceor keySelector é null.

-ou-

keySelectorproduz uma chave null.

ArgumentException

keySelectorproduz duplica chaves de dois elementos.

O ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) o comparador de igualdade padrão usa o método Default para comparar chaves.

O exemplo de código a seguir demonstra como usar ToDictionary<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) para criar um Dictionary<TKey, TValue> usando o seletor de chave.


            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

Com suporte em: 4, 3.5

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.
Mostrar: