SubsetsExtension.Subsets<T>(IEnumerable<T>) Method

Returns a sequence of IList<T> representing all of the subsets of any size that are part of the original sequence. In mathematics, it is equivalent to the power set of a set.

Definition

Namespace: MoreLinq.Extensions
Assembly: MoreLinq (in MoreLinq.dll) Version: 4.4.0+6d97c3b1d482f98300f4446df14742b0e3fafbec
C#
public static IEnumerable<IList<T>> Subsets<T>(
	this IEnumerable<T> sequence
)

Parameters

sequence  IEnumerable<T>
Sequence for which to produce subsets.

Type Parameters

T
The type of the elements in the sequence.

Return Value

IEnumerable<IList<T>>
A sequence of lists that represent the all subsets of the original sequence.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IEnumerable<T>. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).

Remarks

This operator produces all of the subsets of a given sequence. Subsets are returned in increasing cardinality, starting with the empty set and terminating with the entire original sequence.

Subsets are produced in a deferred, streaming manner; however, each subset is returned as a materialized list.

There are 2N subsets of a given sequence, where N ⇒ sequence.Count().

Exceptions

ArgumentNullExceptionThrown if sequence is null.

See Also