IGrouping<TKey,TElement> Интерфейс

Определение

Представляет коллекцию объектов с общим ключом.Represents a collection of objects that have a common key.

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

Параметры типа

TKey

Тип ключа объекта IGrouping<TKey,TElement>.The type of the key of the IGrouping<TKey,TElement>.

Это ковариантный параметр типа. Это означает, что вы можете использовать любой из указанных типов или любой тип, являющийся более производным. Дополнительные сведения о ковариантности и контрвариантности см. в статье Ковариантность и контрвариантность в универсальных шаблонах.
TElement

Тип значений объекта IGrouping<TKey,TElement>.The type of the values in the IGrouping<TKey,TElement>.

Это ковариантный параметр типа. Это означает, что вы можете использовать любой из указанных типов или любой тип, являющийся более производным. Дополнительные сведения о ковариантности и контрвариантности см. в статье Ковариантность и контрвариантность в универсальных шаблонах.
Реализации

Примеры

В следующем примере показано, как работать с объектом IGrouping<TKey,TElement>.The following example demonstrates how to work with an IGrouping<TKey,TElement> object.

В этом примере GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) вызывается в массиве объектов MemberInfo, возвращаемых GetMembers.In this example, GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) is called on the array of MemberInfo objects returned by GetMembers. GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) группирует объекты на основе значения свойства MemberType.GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) groups the objects based on the value of their MemberType property. Каждое уникальное значение MemberType в массиве MemberInfo объектов преобразуется в ключ для нового объекта IGrouping<TKey,TElement>, а объекты MemberInfo, имеющие этот ключ, формируют последовательность значений объекта IGrouping<TKey,TElement>.Each unique value for MemberType in the array of MemberInfo objects becomes a key for a new IGrouping<TKey,TElement> object, and the MemberInfo objects that have that key form the IGrouping<TKey,TElement> object's sequence of values.

Наконец, метод First вызывается для последовательности объектов IGrouping<TKey,TElement>, чтобы получить только первый объект IGrouping<TKey,TElement>.Finally, the First method is called on the sequence of IGrouping<TKey,TElement> objects to obtain just the first IGrouping<TKey,TElement> object.

Затем в примере выводится ключ объекта IGrouping<TKey,TElement> и свойство Name каждого значения в последовательности значений объекта IGrouping<TKey,TElement>.The example then outputs the key of the IGrouping<TKey,TElement> object and the Name property of each value in the IGrouping<TKey,TElement> object's sequence of values. Обратите внимание, что для доступа к последовательности значений объекта IGrouping<TKey,TElement> можно просто использовать саму переменную IGrouping<TKey,TElement>.Notice that to access an IGrouping<TKey,TElement> object's sequence of values, you simply use the IGrouping<TKey,TElement> variable itself.

// Get an IGrouping object.
IGrouping<System.Reflection.MemberTypes, System.Reflection.MemberInfo> group =
    typeof(String).GetMembers().
    GroupBy(member => member.MemberType).
    First();

// Output the key of the IGrouping, then iterate
// through each value in the sequence of values
// of the IGrouping and output its Name property.
Console.WriteLine("\nValues that have the key '{0}':", group.Key);
foreach (System.Reflection.MemberInfo mi in group)
    Console.WriteLine(mi.Name);

// The output is similar to:

// Values that have the key 'Method':
// get_Chars
// get_Length
// IndexOf
// IndexOfAny
// LastIndexOf
// LastIndexOfAny
// Insert
// Replace
// Replace
// Remove
// Join
// Join
// Equals
// Equals
// Equals
// ...

' Get an IGrouping object.
Dim group As IGrouping(Of System.Reflection.MemberTypes, System.Reflection.MemberInfo) = _
    Type.GetType("String").GetMembers(). _
    GroupBy(Function(ByVal member) member.MemberType). _
    First()

' Output the key of the IGrouping, then iterate
' through each value in the sequence of values
' of the IGrouping and output its Name property.
MsgBox(String.Format("\nValues that have the key '{0}':", group.Key))
For Each mi As System.Reflection.MemberInfo In group
    MsgBox(mi.Name)
Next

' The output is similar to:

' Values that have the key 'Method':
' get_Chars
' get_Length
' IndexOf
' IndexOfAny
' LastIndexOf
' LastIndexOfAny
' Insert
' Replace
' Replace
' Remove
' Join
' Join
' Equals
' Equals
' Equals
' ...

Комментарии

IGrouping<TKey,TElement> — это IEnumerable<T>, который дополнительно содержит ключ.An IGrouping<TKey,TElement> is an IEnumerable<T> that additionally has a key. Ключ представляет атрибут, который является общим для каждого значения в IGrouping<TKey,TElement>.The key represents the attribute that is common to each value in the IGrouping<TKey,TElement>.

Доступ к значениям IGrouping<TKey,TElement> осуществляется во многом по мере доступа к элементам IEnumerable<T>.The values of an IGrouping<TKey,TElement> are accessed much as the elements of an IEnumerable<T> are accessed. Например, можно получить доступ к значениям, используя foreach в визуальном C# элементе или For Each в цикле Visual Basic для прохода по объекту IGrouping<TKey,TElement>.For example, you can access the values by using a foreach in Visual C# or For Each in Visual Basic loop to iterate through the IGrouping<TKey,TElement> object. В разделе "пример" содержится пример кода, показывающий, как получить доступ к ключу и значениям объекта IGrouping<TKey,TElement>.The Example section contains a code example that shows you how to access both the key and the values of an IGrouping<TKey,TElement> object.

Тип IGrouping<TKey,TElement> используется методами GroupBy стандартных операторов запросов, которые возвращают последовательность элементов типа IGrouping<TKey,TElement>.The IGrouping<TKey,TElement> type is used by the GroupBy standard query operator methods, which return a sequence of elements of type IGrouping<TKey,TElement>.

Свойства

Key

Возвращает ключ объекта IGrouping<TKey,TElement>.Gets the key of the IGrouping<TKey,TElement>.

Методы

GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.Returns an enumerator that iterates through a collection.

(Унаследовано от IEnumerable)

Методы расширения

CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре 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)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр 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)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр 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)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a collection of elements that contains the ancestors of every node in the source collection.

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

Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>)

Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

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

Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>)

Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a collection of the child elements of every element and document in the source collection.

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

Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a filtered collection of the child elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>)

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>)

Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.Removes every node in the source collection from its parent node.

Применяется к