ILookup<TKey,TElement> ILookup<TKey,TElement> ILookup<TKey,TElement> ILookup<TKey,TElement> Interface

Definition

Определяет индексатор, свойство размера и метод логического поиска для структур данных, сопоставляющих ключи с последовательностями IEnumerable<T> значений. Defines an indexer, size property, and Boolean search method for data structures that map keys to IEnumerable<T> sequences of values.

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

Type Parameters

TKey

Тип ключей объекта ILookup<TKey,TElement>. The type of the keys in the ILookup<TKey,TElement>.

TElement

Тип элементов в последовательностях IEnumerable<T>, представляющих значения объекта ILookup<TKey,TElement>. The type of the elements in the IEnumerable<T> sequences that make up the values in the ILookup<TKey,TElement>.

Derived
Implements

Examples

В следующем примере кода создается ILookup<TKey,TElement> объекта и используется для итерации по его содержимое.The following code example creates an ILookup<TKey,TElement> object and iterates through its contents.

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

public static void ILookupExample()
{
    // Create a list of Packages to put into an ILookup 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 ILookup object.
    ILookup<char, string> packageLookup = packages.ToLookup(
        p => Convert.ToChar(p.Company.Substring(0, 1)),
        p => p.Company + " " + p.TrackingNumber
        );

    // Iterate through each value in the ILookup and output the contents.
    foreach (var packageGroup in packageLookup)
    {
        // Print the key value.
        Console.WriteLine(packageGroup.Key);
        // Iterate through each value in the collection.
        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
}
Structure Package
    Public Company As String
    Public Weight As Double
    Public TrackingNumber As Long
End Structure

Sub ILookupExample()
    ' Create a list of Packages to put into an ILookup 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 ILookup to organize the packages. Use the first character of Company as the key value.
    ' Select Company appended to TrackingNumber for each element value.
    Dim packageLookup As ILookup(Of Char, String) = _
        packages.ToLookup(Function(p) Convert.ToChar(p.Company.Substring(0, 1)), _
                          Function(p) p.Company & " " & p.TrackingNumber)

    Dim output As New System.Text.StringBuilder
    ' Iterate through each group in the Lookup and output the contents.
    For Each packageGroup In packageLookup
        ' Print the key value.
        output.AppendLine(packageGroup.Key)
        ' Iterate through each value in the group and output it.
        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
End Sub

Remarks

Тип Lookup<TKey,TElement> реализует ILookup<TKey,TElement> интерфейс.The type Lookup<TKey,TElement> implements the ILookup<TKey,TElement> interface.

Метод расширения ToLookup, который можно добавить в конец запроса LINQ, возвращает объект типа ILookup<TKey,TElement>.The extension method ToLookup, which can be appended to the end of a LINQ query, returns an object of type ILookup<TKey,TElement>.

Properties

Count Count Count Count

Возвращает число пар коллекции "ключ-значение", содержащихся в ILookup<TKey,TElement>. Gets the number of key/value collection pairs in the ILookup<TKey,TElement>.

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

Возвращает последовательность значений IEnumerable<T> по индексу, определенному указанным ключом. Gets the IEnumerable<T> sequence of values indexed by a specified key.

Methods

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

Определяет, существует ли указанный ключ в ILookup<TKey,TElement>. Determines whether a specified key exists in the ILookup<TKey,TElement>.

Applies to

See Also