Lookup<TKey,TElement> Lookup<TKey,TElement> Lookup<TKey,TElement> Lookup<TKey,TElement> Class

Definizione

Rappresenta una raccolta di chiavi, ognuna mappata a uno o più valori.Represents a collection of keys each mapped to one or more values.

generic <typename TKey, typename TElement>
public ref class Lookup : System::Collections::Generic::IEnumerable<System::Linq::IGrouping<TKey, TElement> ^>, System::Linq::ILookup<TKey, TElement>
public class Lookup<TKey,TElement> : System.Collections.Generic.IEnumerable<System.Linq.IGrouping<TKey,TElement>>, System.Linq.ILookup<TKey,TElement>
type Lookup<'Key, 'Element> = class
    interface seq<IGrouping<'Key, 'Element>>
    interface ILookup<'Key, 'Element>
    interface IEnumerable
Public Class Lookup(Of TKey, TElement)
Implements IEnumerable(Of IGrouping(Of TKey, TElement)), ILookup(Of TKey, TElement)

Parametri di tipo

TKey

Tipo di chiavi contenute nell’oggetto Lookup<TKey,TElement>.The type of the keys in the Lookup<TKey,TElement>.

TElement

Tipo degli elementi di ciascun valore IEnumerable<T> contenuto nell’oggetto Lookup<TKey,TElement>.The type of the elements of each IEnumerable<T> value in the Lookup<TKey,TElement>.

Ereditarietà
Lookup<TKey,TElement>Lookup<TKey,TElement>Lookup<TKey,TElement>Lookup<TKey,TElement>
Implementazioni

Esempi

L'esempio seguente crea un Lookup<TKey,TElement> da una raccolta di oggetti.The following example creates a Lookup<TKey,TElement> from a collection of objects. Vengono quindi enumerati i Lookup<TKey,TElement> genera ogni chiave e ogni valore nell'insieme di valori di chiave associati.It then enumerates the Lookup<TKey,TElement> and outputs each key and each value in the key's associated collection of values. Viene inoltre illustrato come utilizzare le proprietà Count e Item[TKey] e i metodi Contains e GetEnumerator.It also demonstrates how to use the properties Count and Item[TKey] and the methods Contains and GetEnumerator.

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

public static void LookupExample()
{
    // Create a list of Packages to put into a Lookup data structure.
    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 for each element value in the Lookup.
    Lookup<char, string> lookup = (Lookup<char, string>)packages.ToLookup(p => Convert.ToChar(p.Company.Substring(0, 1)),
                                                    p => p.Company + " " + p.TrackingNumber);

    // Iterate through each IGrouping in the Lookup and output the contents.
    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

    // Get the number of key-collection pairs in the Lookup.
    int count = lookup.Count;

    // Select a collection of Packages by indexing directly into the Lookup.
    IEnumerable<string> cgroup = lookup['C'];

    // Output the results.
    Console.WriteLine("\nPackages that have a key of 'C':");
    foreach (string str in cgroup)
        Console.WriteLine(str);

    // This code produces the following output:
    //
    // Packages that have a key of 'C'
    // Coho Vineyard 89453312
    // Contoso Pharmaceuticals 670053128

    // Determine if there is a key with the value 'G' in the Lookup.
    bool hasG = lookup.Contains('G');
}
Structure Package
    Public Company As String
    Public Weight As Double
    Public TrackingNumber As Long
End Structure

Sub LookupExample()
    ' Create a list of Packages to put into a Lookup data structure.
    Dim packages As New System.Collections.Generic.List(Of Package)(New Package() _
        {New Package With {.Company = "Coho Vineyard", .Weight = 25.2, .TrackingNumber = 89453312L}, _
          New Package With {.Company = "Lucerne Publishing", .Weight = 18.7, .TrackingNumber = 89112755L}, _
          New Package With {.Company = "Wingtip Toys", .Weight = 6.0, .TrackingNumber = 299456122L}, _
          New Package With {.Company = "Contoso Pharmaceuticals", .Weight = 9.3, .TrackingNumber = 670053128L}, _
          New Package With {.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 for each element value in the Lookup.
    Dim lookup As ILookup(Of Char, String) = _
        packages.ToLookup(Function(ByVal p) Convert.ToChar(p.Company.Substring(0, 1)), _
                          Function(ByVal p) p.Company & " " & p.TrackingNumber)

    Dim output As New System.Text.StringBuilder
    ' Iterate through each IGrouping in the Lookup and output the contents.
    For Each packageGroup As IGrouping(Of Char, String) In lookup
        ' Print the key value of the IGrouping.
        output.AppendLine(packageGroup.Key)
        ' Iterate through each value in the IGrouping and print its value.
        For Each str As String In packageGroup
            output.AppendLine(String.Format("    {0}", str))
        Next
    Next

    ' Display the output.
    MsgBox(output.ToString())

    ' 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

    ' Get the number of key-collection pairs in the Lookup.
    Dim count As Integer = lookup.Count

    ' Select a collection of Packages by indexing directly into the Lookup.
    Dim cgroup As System.Collections.Generic.IEnumerable(Of String) = lookup("C"c)

    output = New System.Text.StringBuilder
    ' Output the results.
    output.AppendLine(vbCrLf & "Packages that have a key of 'C':")
    For Each str As String In cgroup
        output.AppendLine(str)
    Next

    ' Display the output.
    MsgBox(output.ToString())

    ' This code produces the following output:
    '
    ' Packages that have a key of 'C'
    ' Coho Vineyard 89453312
    ' Contoso Pharmaceuticals 670053128

    ' Determine if there is a key with the value 'G' in the Lookup.
    Dim hasG As Boolean = lookup.Contains("G"c)
End Sub

Commenti

Oggetto Lookup<TKey,TElement> è simile a un Dictionary<TKey,TValue>.A Lookup<TKey,TElement> resembles a Dictionary<TKey,TValue>. La differenza è che un Dictionary<TKey,TValue> esegue il mapping delle chiavi in valori singoli, mentre un Lookup<TKey,TElement> esegue il mapping di chiavi nelle raccolte di valori.The difference is that a Dictionary<TKey,TValue> maps keys to single values, whereas a Lookup<TKey,TElement> maps keys to collections of values.

È possibile creare un'istanza di un Lookup<TKey,TElement> chiamando ToLookup su un oggetto che implementa IEnumerable<T>.You can create an instance of a Lookup<TKey,TElement> by calling ToLookup on an object that implements IEnumerable<T>.

Nota

Non vi è alcun costruttore pubblico per creare una nuova istanza di un Lookup<TKey,TElement>.There is no public constructor to create a new instance of a Lookup<TKey,TElement>. È inoltre Lookup<TKey,TElement> gli oggetti non sono modificabili, vale a dire, non è possibile aggiungere o rimuovere elementi o chiavi da un Lookup<TKey,TElement> dopo che è stato creato l'oggetto.Additionally, Lookup<TKey,TElement> objects are immutable, that is, you cannot add or remove elements or keys from a Lookup<TKey,TElement> object after it has been created.

Proprietà

Count Count Count Count

Ottiene il numero di coppie di raccolte chiave/valore contenute nell'oggetto Lookup<TKey,TElement>.Gets the number of key/value collection pairs in the Lookup<TKey,TElement>.

Item[TKey] Item[TKey] Item[TKey] Item[TKey]

Ottiene la raccolta di valori indicizzati dalla chiave specificata.Gets the collection of values indexed by the specified key.

Metodi

ApplyResultSelector<TResult>(Func<TKey,IEnumerable<TElement>,TResult>) ApplyResultSelector<TResult>(Func<TKey,IEnumerable<TElement>,TResult>) ApplyResultSelector<TResult>(Func<TKey,IEnumerable<TElement>,TResult>) ApplyResultSelector<TResult>(Func<TKey,IEnumerable<TElement>,TResult>)

Applica una funzione di trasformazione a ciascuna chiave e ai valori associati e restituisce i risultati.Applies a transform function to each key and its associated values and returns the results.

Contains(TKey) Contains(TKey) Contains(TKey) Contains(TKey)

Determina se una chiave specificata è contenuta nell'oggetto Lookup<TKey,TElement>.Determines whether a specified key is in the Lookup<TKey,TElement>.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Restituisce un enumeratore generico che consente di scorrere l’oggetto Lookup<TKey,TElement>.Returns a generic enumerator that iterates through the Lookup<TKey,TElement>.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Restituisce un enumeratore che esegue l'iterazione di Lookup<TKey,TElement>.Returns an enumerator that iterates through the Lookup<TKey,TElement>. Questa classe non può essere ereditata.This class cannot be inherited.

Extension Methods

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Restituisce un DataTable che contiene copie del DataRow oggetti, dato un input IEnumerable<T> oggetto in cui il parametro generico T è DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Le copie DataRow oggetti specificata DataTable, un giudizio IEnumerable<T> oggetto in cui il parametro generico T è DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Le copie DataRow oggetti specificata DataTable, un giudizio IEnumerable<T> oggetto in cui il parametro generico T è DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Converte un' IEnumerable a un IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>)

Restituisce una raccolta di elementi che contiene i predecessori di ciascun nodo nella raccolta di origine.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName)

Restituisce una raccolta di elementi filtrati che contiene i predecessori di ciascun nodo nella raccolta di origine.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Solo gli elementi che hanno un oggetto XName corrispondente vengono inclusi nella raccolta.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

Restituisce una raccolta di nodi discendenti di ciascun documento ed elemento nella raccolta di origine.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>)

Restituisce una raccolta di elementi che contiene gli elementi discendenti di ciascun elemento e documento nella raccolta di origine.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName)

Restituisce una raccolta filtrata di elementi che contiene gli elementi discendenti di ciascun elemento e documento nella raccolta di origine.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Solo gli elementi che hanno un oggetto XName corrispondente vengono inclusi nella raccolta.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Restituisce una raccolta di elementi figlio di ciascun elemento e documento nella raccolta di origine.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName)

Restituisce una raccolta filtrata degli elementi figlio di ciascun elemento e documento nella raccolta di origine.Returns a filtered collection of the child elements of every element and document in the source collection. Solo gli elementi che hanno un oggetto XName corrispondente vengono inclusi nella raccolta.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>)

Restituisce una raccolta di nodi che contiene tutti i nodi nella raccolta di origine ordinati in base all'ordine con cui sono riportati nel documento.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

Restituisce una raccolta di nodi figlio di ciascun documento ed elemento nella raccolta di origine.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>)

Rimuove ciascun nodo nella raccolta di origine dal nodo padre.Removes every node in the source collection from its parent node.

Si applica a