IGrouping(TKey, TElement) Interface

IGrouping<TKey, TElement> Interface

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Represents a collection of objects that have a common key.

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

public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, 
	IEnumerable

Type Parameters

out TKey

The type of the key of the IGrouping<TKey, TElement>.

This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see [2678dc63-c7f9-4590-9ddc-0a4df684d42e].

out TElement

The type of the values in the IGrouping<TKey, TElement>.

The IGrouping<TKey, TElement> type exposes the following members.

  NameDescription
Public propertyKeyGets the key of the IGrouping<TKey, TElement>.
Top

  NameDescription
Public methodGetEnumerator()Returns an enumerator that iterates through a collection. (Inherited from IEnumerable.)
Public methodGetEnumerator()Returns an enumerator that iterates through the collection. (Inherited from IEnumerable<T>.)
Top

  NameDescription
Public Extension MethodAggregate<TElement>(Func<TElement, TElement, TElement>)Overloaded. Applies an accumulator function over a sequence. (Defined by Enumerable.)
Public Extension MethodAggregate<TElement, TAccumulate>(TAccumulate, Func<TAccumulate, TElement, TAccumulate>)Overloaded. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. (Defined by Enumerable.)
Public Extension MethodAggregate<TElement, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, TElement, TAccumulate>, Func<TAccumulate, TResult>)Overloaded. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. (Defined by Enumerable.)
Public Extension MethodAll<TElement>Determines whether all elements of a sequence satisfy a condition. (Defined by Enumerable.)
Public Extension MethodAny<TElement>()Overloaded. Determines whether a sequence contains any elements. (Defined by Enumerable.)
Public Extension MethodAny<TElement>(Func<TElement, Boolean>)Overloaded. Determines whether any element of a sequence satisfies a condition. (Defined by Enumerable.)
Public Extension MethodAsEnumerable<TElement>Returns the input typed as IEnumerable<T>. (Defined by Enumerable.)
Public Extension MethodAsQueryable()Overloaded. Converts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension MethodAsQueryable<TElement>()Overloaded. Converts a generic IEnumerable<T> to a generic IQueryable<T>. (Defined by Queryable.)
Public Extension MethodAverage<TElement>(Func<TElement, Decimal>)Overloaded. Computes the average of a sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Nullable<Decimal>>)Overloaded. Computes the average of a sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Double>)Overloaded. Computes the average of a sequence of Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Nullable<Double>>)Overloaded. Computes the average of a sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Int32>)Overloaded. Computes the average of a sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Int64>)Overloaded. Computes the average of a sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Nullable<Int32>>)Overloaded. Computes the average of a sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Nullable<Int64>>)Overloaded. Computes the average of a sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Nullable<Single>>)Overloaded. Computes the average of a sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodAverage<TElement>(Func<TElement, Single>)Overloaded. Computes the average of a sequence of Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodCast<TResult>Converts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension MethodConcat<TElement>Concatenates two sequences. (Defined by Enumerable.)
Public Extension MethodContains<TElement>(TElement)Overloaded. Determines whether a sequence contains a specified element by using the default equality comparer. (Defined by Enumerable.)
Public Extension MethodContains<TElement>(TElement, IEqualityComparer<TElement>)Overloaded. Determines whether a sequence contains a specified element by using a specified IEqualityComparer<T>. (Defined by Enumerable.)
Public Extension MethodCount<TElement>()Overloaded. Returns the number of elements in a sequence. (Defined by Enumerable.)
Public Extension MethodCount<TElement>(Func<TElement, Boolean>)Overloaded. Returns a number that represents how many elements in the specified sequence satisfy a condition. (Defined by Enumerable.)
Public Extension MethodDefaultIfEmpty<TElement>()Overloaded. Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty. (Defined by Enumerable.)
Public Extension MethodDefaultIfEmpty<TElement>(TElement)Overloaded. Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. (Defined by Enumerable.)
Public Extension MethodDistinct<TElement>()Overloaded. Returns distinct elements from a sequence by using the default equality comparer to compare values. (Defined by Enumerable.)
Public Extension MethodDistinct<TElement>(IEqualityComparer<TElement>)Overloaded. Returns distinct elements from a sequence by using a specified IEqualityComparer<T> to compare values. (Defined by Enumerable.)
Public Extension MethodElementAt<TElement>Returns the element at a specified index in a sequence. (Defined by Enumerable.)
Public Extension MethodElementAtOrDefault<TElement>Returns the element at a specified index in a sequence or a default value if the index is out of range. (Defined by Enumerable.)
Public Extension MethodExcept<TElement>(IEnumerable<TElement>)Overloaded. Produces the set difference of two sequences by using the default equality comparer to compare values. (Defined by Enumerable.)
Public Extension MethodExcept<TElement>(IEnumerable<TElement>, IEqualityComparer<TElement>)Overloaded. Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values. (Defined by Enumerable.)
Public Extension MethodFirst<TElement>()Overloaded. Returns the first element of a sequence. (Defined by Enumerable.)
Public Extension MethodFirst<TElement>(Func<TElement, Boolean>)Overloaded. Returns the first element in a sequence that satisfies a specified condition. (Defined by Enumerable.)
Public Extension MethodFirstOrDefault<TElement>()Overloaded. Returns the first element of a sequence, or a default value if the sequence contains no elements. (Defined by Enumerable.)
Public Extension MethodFirstOrDefault<TElement>(Func<TElement, Boolean>)Overloaded. Returns the first element of the sequence that satisfies a condition or a default value if no such element is found. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey>(Func<TElement, TKey>)Overloaded. Groups the elements of a sequence according to a specified key selector function. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey>(Func<TElement, TKey>, IEqualityComparer<TKey>)Overloaded. Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey, TElement>(Func<TElement, TKey>, Func<TElement, TElement>)Overloaded. Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey, TResult>(Func<TElement, TKey>, Func<TKey, IEnumerable<TElement>, TResult>)Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey, TElement>(Func<TElement, TKey>, Func<TElement, TElement>, IEqualityComparer<TKey>)Overloaded. Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey, TResult>(Func<TElement, TKey>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey, TElement, TResult>(Func<TElement, TKey>, Func<TElement, TElement>, Func<TKey, IEnumerable<TElement>, TResult>)Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function. (Defined by Enumerable.)
Public Extension MethodGroupBy<TElement, TKey, TElement, TResult>(Func<TElement, TKey>, Func<TElement, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function. (Defined by Enumerable.)
Public Extension MethodGroupJoin<TElement, TInner, TKey, TResult>(IEnumerable<TInner>, Func<TElement, TKey>, Func<TInner, TKey>, Func<TElement, IEnumerable<TInner>, TResult>)Overloaded. Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys. (Defined by Enumerable.)
Public Extension MethodGroupJoin<TElement, TInner, TKey, TResult>(IEnumerable<TInner>, Func<TElement, TKey>, Func<TInner, TKey>, Func<TElement, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)Overloaded. Correlates the elements of two sequences based on key equality and groups the results. A specified IEqualityComparer<T> is used to compare keys. (Defined by Enumerable.)
Public Extension MethodIntersect<TElement>(IEnumerable<TElement>)Overloaded. Produces the set intersection of two sequences by using the default equality comparer to compare values. (Defined by Enumerable.)
Public Extension MethodIntersect<TElement>(IEnumerable<TElement>, IEqualityComparer<TElement>)Overloaded. Produces the set intersection of two sequences by using the specified IEqualityComparer<T> to compare values. (Defined by Enumerable.)
Public Extension MethodJoin<TElement, TInner, TKey, TResult>(IEnumerable<TInner>, Func<TElement, TKey>, Func<TInner, TKey>, Func<TElement, TInner, TResult>)Overloaded. Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys. (Defined by Enumerable.)
Public Extension MethodJoin<TElement, TInner, TKey, TResult>(IEnumerable<TInner>, Func<TElement, TKey>, Func<TInner, TKey>, Func<TElement, TInner, TResult>, IEqualityComparer<TKey>)Overloaded. Correlates the elements of two sequences based on matching keys. A specified IEqualityComparer<T> is used to compare keys. (Defined by Enumerable.)
Public Extension MethodLast<TElement>()Overloaded. Returns the last element of a sequence. (Defined by Enumerable.)
Public Extension MethodLast<TElement>(Func<TElement, Boolean>)Overloaded. Returns the last element of a sequence that satisfies a specified condition. (Defined by Enumerable.)
Public Extension MethodLastOrDefault<TElement>()Overloaded. Returns the last element of a sequence, or a default value if the sequence contains no elements. (Defined by Enumerable.)
Public Extension MethodLastOrDefault<TElement>(Func<TElement, Boolean>)Overloaded. Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. (Defined by Enumerable.)
Public Extension MethodLongCount<TElement>()Overloaded. Returns an Int64 that represents the total number of elements in a sequence. (Defined by Enumerable.)
Public Extension MethodLongCount<TElement>(Func<TElement, Boolean>)Overloaded. Returns an Int64 that represents how many elements in a sequence satisfy a condition. (Defined by Enumerable.)
Public Extension MethodMax<TElement>()Overloaded. Returns the maximum value in a generic sequence. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Decimal>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Decimal value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Nullable<Decimal>>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Decimal value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Double>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Double value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Nullable<Double>>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Double value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Int32>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Int32 value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Int64>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Int64 value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Nullable<Int32>>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Int32 value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Nullable<Int64>>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Int64 value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Nullable<Single>>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Single value. (Defined by Enumerable.)
Public Extension MethodMax<TElement>(Func<TElement, Single>)Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Single value. (Defined by Enumerable.)
Public Extension MethodMax<TElement, TResult>(Func<TElement, TResult>)Overloaded. Invokes a transform function on each element of a generic sequence and returns the maximum resulting value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>()Overloaded. Returns the minimum value in a generic sequence. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Decimal>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Decimal value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Nullable<Decimal>>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Decimal value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Double>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Double value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Nullable<Double>>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Double value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Int32>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Int32 value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Int64>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Int64 value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Nullable<Int32>>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Int32 value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Nullable<Int64>>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Int64 value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Nullable<Single>>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Single value. (Defined by Enumerable.)
Public Extension MethodMin<TElement>(Func<TElement, Single>)Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Single value. (Defined by Enumerable.)
Public Extension MethodMin<TElement, TResult>(Func<TElement, TResult>)Overloaded. Invokes a transform function on each element of a generic sequence and returns the minimum resulting value. (Defined by Enumerable.)
Public Extension MethodOfType<TResult>Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Public Extension MethodOrderBy<TElement, TKey>(Func<TElement, TKey>)Overloaded. Sorts the elements of a sequence in ascending order according to a key. (Defined by Enumerable.)
Public Extension MethodOrderBy<TElement, TKey>(Func<TElement, TKey>, IComparer<TKey>)Overloaded. Sorts the elements of a sequence in ascending order by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodOrderByDescending<TElement, TKey>(Func<TElement, TKey>)Overloaded. Sorts the elements of a sequence in descending order according to a key. (Defined by Enumerable.)
Public Extension MethodOrderByDescending<TElement, TKey>(Func<TElement, TKey>, IComparer<TKey>)Overloaded. Sorts the elements of a sequence in descending order by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodReverse<TElement>Inverts the order of the elements in a sequence. (Defined by Enumerable.)
Public Extension MethodSelect<TElement, TResult>(Func<TElement, TResult>)Overloaded. Projects each element of a sequence into a new form. (Defined by Enumerable.)
Public Extension MethodSelect<TElement, TResult>(Func<TElement, Int32, TResult>)Overloaded. Projects each element of a sequence into a new form by incorporating the element's index. (Defined by Enumerable.)
Public Extension MethodSelectMany<TElement, TResult>(Func<TElement, IEnumerable<TResult>>)Overloaded. Projects each element of a sequence to an IEnumerable<T> and flattens the resulting sequences into one sequence. (Defined by Enumerable.)
Public Extension MethodSelectMany<TElement, TResult>(Func<TElement, Int32, IEnumerable<TResult>>)Overloaded. Projects each element of a sequence to an IEnumerable<T>, and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element. (Defined by Enumerable.)
Public Extension MethodSelectMany<TElement, TCollection, TResult>(Func<TElement, IEnumerable<TCollection>>, Func<TElement, TCollection, TResult>)Overloaded. Projects each element of a sequence to an IEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. (Defined by Enumerable.)
Public Extension MethodSelectMany<TElement, TCollection, TResult>(Func<TElement, Int32, IEnumerable<TCollection>>, Func<TElement, TCollection, TResult>)Overloaded. Projects each element of a sequence to an IEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. The index of each source element is used in the intermediate projected form of that element. (Defined by Enumerable.)
Public Extension MethodSequenceEqual<TElement>(IEnumerable<TElement>)Overloaded. Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type. (Defined by Enumerable.)
Public Extension MethodSequenceEqual<TElement>(IEnumerable<TElement>, IEqualityComparer<TElement>)Overloaded. Determines whether two sequences are equal by comparing their elements by using a specified IEqualityComparer<T>. (Defined by Enumerable.)
Public Extension MethodSingle<TElement>()Overloaded. Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. (Defined by Enumerable.)
Public Extension MethodSingle<TElement>(Func<TElement, Boolean>)Overloaded. Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. (Defined by Enumerable.)
Public Extension MethodSingleOrDefault<TElement>()Overloaded. Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. (Defined by Enumerable.)
Public Extension MethodSingleOrDefault<TElement>(Func<TElement, Boolean>)Overloaded. Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. (Defined by Enumerable.)
Public Extension MethodSkip<TElement>Bypasses a specified number of elements in a sequence and then returns the remaining elements. (Defined by Enumerable.)
Public Extension MethodSkipWhile<TElement>(Func<TElement, Boolean>)Overloaded. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. (Defined by Enumerable.)
Public Extension MethodSkipWhile<TElement>(Func<TElement, Int32, Boolean>)Overloaded. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Decimal>)Overloaded. Computes the sum of the sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Nullable<Decimal>>)Overloaded. Computes the sum of the sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Double>)Overloaded. Computes the sum of the sequence of Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Nullable<Double>>)Overloaded. Computes the sum of the sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Int32>)Overloaded. Computes the sum of the sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Int64>)Overloaded. Computes the sum of the sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Nullable<Int32>>)Overloaded. Computes the sum of the sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Nullable<Int64>>)Overloaded. Computes the sum of the sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Nullable<Single>>)Overloaded. Computes the sum of the sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSum<TElement>(Func<TElement, Single>)Overloaded. Computes the sum of the sequence of Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodTake<TElement>Returns a specified number of contiguous elements from the start of a sequence. (Defined by Enumerable.)
Public Extension MethodTakeWhile<TElement>(Func<TElement, Boolean>)Overloaded. Returns elements from a sequence as long as a specified condition is true. (Defined by Enumerable.)
Public Extension MethodTakeWhile<TElement>(Func<TElement, Int32, Boolean>)Overloaded. Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. (Defined by Enumerable.)
Public Extension MethodToArray<TElement>Creates an array from a IEnumerable<T>. (Defined by Enumerable.)
Public Extension MethodToDictionary<TElement, TKey>(Func<TElement, TKey>)Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to a specified key selector function. (Defined by Enumerable.)
Public Extension MethodToDictionary<TElement, TKey>(Func<TElement, TKey>, IEqualityComparer<TKey>)Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to a specified key selector function and key comparer. (Defined by Enumerable.)
Public Extension MethodToDictionary<TElement, TKey, TElement>(Func<TElement, TKey>, Func<TElement, TElement>)Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to specified key selector and element selector functions. (Defined by Enumerable.)
Public Extension MethodToDictionary<TElement, TKey, TElement>(Func<TElement, TKey>, Func<TElement, TElement>, IEqualityComparer<TKey>)Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to a specified key selector function, a comparer, and an element selector function. (Defined by Enumerable.)
Public Extension MethodToList<TElement>Creates a List<T> from an IEnumerable<T>. (Defined by Enumerable.)
Public Extension MethodToLookup<TElement, TKey>(Func<TElement, TKey>)Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to a specified key selector function. (Defined by Enumerable.)
Public Extension MethodToLookup<TElement, TKey>(Func<TElement, TKey>, IEqualityComparer<TKey>)Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to a specified key selector function and key comparer. (Defined by Enumerable.)
Public Extension MethodToLookup<TElement, TKey, TElement>(Func<TElement, TKey>, Func<TElement, TElement>)Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to specified key selector and element selector functions. (Defined by Enumerable.)
Public Extension MethodToLookup<TElement, TKey, TElement>(Func<TElement, TKey>, Func<TElement, TElement>, IEqualityComparer<TKey>)Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to a specified key selector function, a comparer and an element selector function. (Defined by Enumerable.)
Public Extension MethodUnion<TElement>(IEnumerable<TElement>)Overloaded. Produces the set union of two sequences by using the default equality comparer. (Defined by Enumerable.)
Public Extension MethodUnion<TElement>(IEnumerable<TElement>, IEqualityComparer<TElement>)Overloaded. Produces the set union of two sequences by using a specified IEqualityComparer<T>. (Defined by Enumerable.)
Public Extension MethodWhere<TElement>(Func<TElement, Boolean>)Overloaded. Filters a sequence of values based on a predicate. (Defined by Enumerable.)
Public Extension MethodWhere<TElement>(Func<TElement, Int32, Boolean>)Overloaded. Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function. (Defined by Enumerable.)
Public Extension MethodZip<TElement, TSecond, TResult>Merges two sequences by using the specified predicate function. (Defined by Enumerable.)
Top

An IGrouping<TKey, TElement> is an IEnumerable<T> that additionally has a key. The key represents the attribute that is common to each value in the IGrouping<TKey, TElement>.

The values of an IGrouping<TKey, TElement> are accessed much as the elements of an IEnumerable<T> are accessed. 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. 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.

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>.

The following example demonstrates how to work with an IGrouping<TKey, TElement> object.

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>) groups the objects based on the value of their MemberType property. 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.

Finally, the First method is called on the sequence of IGrouping<TKey, TElement> objects to obtain just the first IGrouping<TKey, TElement> object.

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. 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.
      outputBlock.Text += String.Format("\nValues that have the key '{0}':", group.Key) + "\n";
      foreach (System.Reflection.MemberInfo mi in group)
         outputBlock.Text += mi.Name + "\n";

      // 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
      // ...



Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2017 Microsoft