Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

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

Cria Lookup<TKey, TElement> de IEnumerable<T> de acordo com o seletor chave especificado e o seletor do elemento funções.

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

public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TSource, TElement> elementSelector
)

Parâmetros de tipo

TSource

O tipo dos elementos de source.

TKey

O tipo de chave retornada por keySelector.

TElement

O tipo do valor retornado por elementSelector.

Parâmetros

source
Tipo: System.Collections.Generic.IEnumerable<TSource>
IEnumerable<T> para criar Lookup<TKey, TElement> do.
keySelector
Tipo: System.Func<TSource, TKey>
Uma função para extrair uma chave de cada elemento.
elementSelector
Tipo: System.Func<TSource, TElement>
Uma função a transformação para gerar um valor do elemento do resultado de cada elemento.

Valor de retorno

Tipo: System.Linq.ILookup<TKey, TElement>
Lookup<TKey, TElement> que contém valores de tipo TElement selecionou na sequência de entrada.

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

ExceçãoCondição
ArgumentNullException

source ou keySelector ou elementSelector são null.

O método de ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) retorna Lookup<TKey, TElement>, um dicionário um para muitos que mapeia chaves a coleções de valores. Lookup<TKey, TElement> difere de Dictionary<TKey, TValue>, que executa um mapeamento um-para-um de chaves para escolher valores.

O comparador padrão Default de igualdade é usado para comparar chaves.

O exemplo de código a seguir demonstra como usar o ToLookup<TSource, TKey, TElement>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource, TElement>) para criar Lookup<TKey, TElement> usando uma função chave do seletor e uma função do seletor do elemento.


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

            public static void ToLookupEx1()
            {
                // Create a list of Packages.
                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 = "Contoso Pharmaceuticals", 
                              Weight = 9.3, TrackingNumber = 670053128L },
                          new Package { Company = "Wide World Importers", 
                              Weight = 33.8, TrackingNumber = 4665518773L } };

                // Create a Lookup to organize the packages. 
                // Use the first character of Company as the key value.
                // Select Company appended to TrackingNumber 
                // as the element values of the Lookup.
                ILookup<char, string> lookup =
                    packages
                    .ToLookup(p => Convert.ToChar(p.Company.Substring(0, 1)),
                              p => p.Company + " " + p.TrackingNumber);

                // Iterate through each IGrouping in the Lookup.
                foreach (IGrouping<char, string> packageGroup in lookup)
                {
                    // Print the key value of the IGrouping.
                    Console.WriteLine(packageGroup.Key);
                    // Iterate through each value in the 
                    // IGrouping and print its value.
                    foreach (string str in packageGroup)
                        Console.WriteLine("    {0}", str);
                }
            }

            /*
             This code produces the following output:

             C
                 Coho Vineyard 89453312
                 Contoso Pharmaceuticals 670053128
             L
                 Lucerne Publishing 89112755
             W
                 Wingtip Toys 299456122
                 Wide World Importers 4665518773
            */



.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

.NET para aplicativos do Windows Phone

Com suporte em: 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 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

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 do sistema do .NET Framework.

Contribuições da comunidade

Mostrar:
© 2015 Microsoft