SortedSet Class

Definition

Represents a collection of objects that is maintained in sorted order.

public class SortedSet<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.ISet<T>, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
Type Parameters
T

The type of elements in the set.

Inheritance
SortedSet<T>
Implements

Inherited Members

System.Object

Examples

The following example demonstrates a SortedSet<T> class that is created with the constructor that takes an IComparer<T> as a parameter. This comparer (ByFileExtension) is used to sort a list of file names by their extensions.

This example demonstrates how to create a sorted set of media file names, remove unwanted elements, view a range of elements, and compare the set with another sorted set.

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;


class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Get a list of the files to use for the sorted set.
            IEnumerable<string> files1 =
                Directory.EnumerateFiles(@"\\archives\2007\media",
                "*", SearchOption.AllDirectories);

            // Create a sorted set using the ByFileExtension comparer.
            SortedSet<string> mediaFiles1 =
                new SortedSet<string>(new ByFileExtension());

            // Note that there is a SortedSet constructor that takes an IEnumerable,
            // but to remove the path information they must be added individually.
            foreach (string f in files1)
            {
                mediaFiles1.Add(f.Substring(f.LastIndexOf(@"\") + 1));
            }

            // Remove elements that have non-media extensions.
            // See the 'isDoc' method.
            Console.WriteLine("Remove docs from the set...");
            Console.WriteLine("\tCount before: {0}", mediaFiles1.Count.ToString());
            mediaFiles1.RemoveWhere(isDoc);
            Console.WriteLine("\tCount after: {0}", mediaFiles1.Count.ToString());


            Console.WriteLine();

            // List all the avi files.
            SortedSet<string> aviFiles = mediaFiles1.GetViewBetween("avi", "avj");

            Console.WriteLine("AVI files:");
            foreach (string avi in aviFiles)
            {
                Console.WriteLine("\t{0}", avi);
            }

            Console.WriteLine();

            // Create another sorted set.
            IEnumerable<string> files2 =
                Directory.EnumerateFiles(@"\\archives\2008\media",
                    "*", SearchOption.AllDirectories);

            SortedSet<string> mediaFiles2 = new SortedSet<string>(new ByFileExtension());

            foreach (string f in files2)
            {
                mediaFiles2.Add(f.Substring(f.LastIndexOf(@"\") + 1));
            }

            // Remove elements in mediaFiles1 that are also in mediaFiles2.
            Console.WriteLine("Remove duplicates (of mediaFiles2) from the set...");
            Console.WriteLine("\tCount before: {0}", mediaFiles1.Count.ToString());
            mediaFiles1.ExceptWith(mediaFiles2);
            Console.WriteLine("\tCount after: {0}", mediaFiles1.Count.ToString());

            Console.WriteLine();

            Console.WriteLine("List of mediaFiles1:");
            foreach (string f in mediaFiles1)
            {
                Console.WriteLine("\t{0}",f);
            }

            // Create a set of the sets.
            IEqualityComparer<SortedSet<string>> comparer =
                SortedSet<string>.CreateSetComparer();

            HashSet<SortedSet<string>> allMedia =
                new HashSet<SortedSet<string>>(comparer);
            allMedia.Add(mediaFiles1);
            allMedia.Add(mediaFiles2);
        }
        catch(IOException ioEx)
        {
            Console.WriteLine(ioEx.Message);
        }

        catch (UnauthorizedAccessException AuthEx)
        {
            Console.WriteLine(AuthEx.Message);

        }
    }

    // Defines a predicate delegate to use
    // for the SortedSet.RemoveWhere method.
    private static bool isDoc(string s)
    {
        if (s.ToLower().EndsWith(".txt") ||
            s.ToLower().EndsWith(".doc") ||
            s.ToLower().EndsWith(".xls") ||
            s.ToLower().EndsWith(".xlsx") ||
            s.ToLower().EndsWith(".pdf") ||
            s.ToLower().EndsWith(".doc") ||
            s.ToLower().EndsWith(".docx"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }


}

// Defines a comparer to create a sorted set
// that is sorted by the file extensions.
public class ByFileExtension : IComparer<string>
{
    string xExt, yExt;

	CaseInsensitiveComparer caseiComp = new CaseInsensitiveComparer();

    public int Compare(string x, string y)
    {
        // Parse the extension from the file name. 
        xExt = x.Substring(x.LastIndexOf(".") + 1);
        yExt = y.Substring(y.LastIndexOf(".") + 1);

        // Compare the file extensions. 
        int vExt = caseiComp.Compare(xExt, yExt);
        if (vExt != 0)
        {
            return vExt;
        }
        else
        {
            // The extension is the same, 
            // so compare the filenames. 
            return caseiComp.Compare(x, y);
        }
    }
}
Imports System.Collections
Imports System.Collections.Generic
Imports System.IO

Module Module1

    Sub Main()
        Try
            ' Get a list of the files to use for the sorted set.
            Dim files1 As IEnumerable = _
                Directory.EnumerateFiles("\\archives\2007\media", "*", _
                                                          SearchOption.AllDirectories)
            ' Create a sorted set using the ByFileExtension comparer.
            Dim mediaFiles1 As SortedSet(Of String) = _
                New SortedSet(Of String)(New ByFileExtension)
        
            ' Note that there is a SortedSet constructor that takes an IEnumerable,
            ' but to remove the path information they must be added individually.
            For Each f As String In files1
                mediaFiles1.Add(f.Substring((f.LastIndexOf("\") + 1)))
            Next
            
            ' Remove elements that have non-media extensions. See the 'isDoc' method.
            Console.WriteLine("Remove docs from the set...")
            Console.WriteLine(vbTab & "Count before: {0}", mediaFiles1.Count.ToString)
            mediaFiles1.RemoveWhere(AddressOf isDoc)
            Console.WriteLine(vbTab & "Count after: {0}", mediaFiles1.Count.ToString)
        
            Console.WriteLine()
            
            ' List all the avi files.
            Dim aviFiles As SortedSet(Of String) = mediaFiles1.GetViewBetween("avi", "avj")
            Console.WriteLine("AVI files:")
            For Each avi As String In aviFiles
                Console.WriteLine(vbTab & "{0}", avi)
            Next

            Console.WriteLine()

            ' Create another sorted set.
            Dim files2 As IEnumerable = _
                Directory.EnumerateFiles("\\archives\2008\media", "*", _
                                      SearchOption.AllDirectories)
            Dim mediaFiles2 As SortedSet(Of String) = _
                New SortedSet(Of String)(New ByFileExtension)
            For Each f As String In files2
                mediaFiles2.Add(f.Substring((f.LastIndexOf("\") + 1)))
            Next
            
            ' Remove elements in mediaFiles1 that are also in mediaFiles2.
            Console.WriteLine("Remove duplicates (of mediaFiles2) from the set...")
            Console.WriteLine(vbTab & "Count before: {0}", _
                    mediaFiles1.Count.ToString)
            mediaFiles1.ExceptWith(mediaFiles2)
            Console.WriteLine(vbTab & "Count after: {0}", _
                    mediaFiles1.Count.ToString)

            Console.WriteLine()

            Console.WriteLine("List of mediaFiles1:")
            For Each f As String In mediaFiles1
                Console.WriteLine(vbTab & "{0}", f)
            Next
            
            ' Create a set of the sets.
            Dim comparer As IEqualityComparer(Of SortedSet(Of String)) = _
                SortedSet(Of String).CreateSetComparer()
            Dim allMedia As HashSet(Of SortedSet(Of String)) = _
                    New HashSet(Of SortedSet(Of String))(comparer)
            allMedia.Add(mediaFiles1)
            allMedia.Add(mediaFiles2)

        Catch ioEx As IOException
            Console.WriteLine(ioEx.Message)
        Catch AuthEx As UnauthorizedAccessException
            Console.WriteLine(AuthEx.Message)
        End Try


    End Sub

    ' Defines a predicate deligate to use
    ' for the SortedSet.RemoveWhere method.
    Private Function isDoc(ByVal s As String) As Boolean
        If (s.ToLower.EndsWith(".txt") _
                    OrElse (s.ToLower.EndsWith(".doc") _
                    OrElse (s.ToLower.EndsWith(".xls") _
                    OrElse (s.ToLower.EndsWith(".xlsx") _
                    OrElse (s.ToLower.EndsWith(".pdf") _
                    OrElse (s.ToLower.EndsWith(".doc") _
                    OrElse s.ToLower.EndsWith(".docx"))))))) Then
            Return True
        Else
            Return False
        End If
    End Function
    
    ' Defines a comparer to create a sorted set
    ' that is sorted by the file extensions.
    Public Class ByFileExtension
        Implements IComparer(Of String)
        Dim xExt, yExt As String

        Dim caseiComp As CaseInsensitiveComparer = _
        					New CaseInsensitiveComparer
		Public Function Compare(x As String, y As String) _
            As Integer Implements IComparer(Of String).Compare
   			' Parse the extension from the file name.
			xExt = x.Substring(x.LastIndexOf(".") + 1)
			yExt = y.Substring(y.LastIndexOf(".") + 1)

			' Compare the file extensions.
			Dim vExt As Integer = caseiComp.Compare(xExt, yExt)
			If vExt <> 0 Then
				Return vExt
			Else
				' The extension is the same, 
				' so compare the filenames. 
				Return caseiComp.Compare(x, y)
			End If
		End Function        
        
    End Class
End Module

Remarks

A SortedSet<T> object maintains a sorted order without affecting performance as elements are inserted and deleted. Duplicate elements are not allowed. Changing the sort values of existing items is not supported and may lead to unexpected behavior.

For a thread safe alternative to SortedSet<T>, see ImmutableSortedSet<T>

Constructors

SortedSet<T>()

Initializes a new instance of the SortedSet<T> class.

SortedSet<T>(IComparer<T>)

Initializes a new instance of the SortedSet<T> class that uses a specified comparer.

SortedSet<T>(IEnumerable<T>)

Initializes a new instance of the SortedSet<T> class that contains elements copied from a specified enumerable collection.

SortedSet<T>(IEnumerable<T>, IComparer<T>)

Initializes a new instance of the SortedSet<T> class that contains elements copied from a specified enumerable collection and that uses a specified comparer.

SortedSet<T>(SerializationInfo, StreamingContext)

Initializes a new instance of the SortedSet<T> class that contains serialized data.

Properties

Comparer

Gets the IComparer<T> object that is used to order the values in the SortedSet<T>.

Count

Gets the number of elements in the SortedSet<T>.

Max

Gets the maximum value in the SortedSet<T>, as defined by the comparer.

Min

Gets the minimum value in the SortedSet<T>, as defined by the comparer.

Methods

Add(T)

Adds an element to the set and returns a value that indicates if it was successfully added.

Clear()

Removes all elements from the set.

Contains(T)

Determines whether the set contains a specific element.

CopyTo(T[], Int32, Int32)

Copies a specified number of elements from SortedSet<T> to a compatible one-dimensional array, starting at the specified array index.

CopyTo(T[], Int32)

Copies the complete SortedSet<T> to a compatible one-dimensional array, starting at the specified array index.

CopyTo(T[])

Copies the complete SortedSet<T> to a compatible one-dimensional array, starting at the beginning of the target array.

CreateSetComparer()

Returns an IEqualityComparer object that can be used to create a collection that contains individual sets.

CreateSetComparer(IEqualityComparer<T>)

Returns an IEqualityComparer object, according to a specified comparer, that can be used to create a collection that contains individual sets.

ExceptWith(IEnumerable<T>)

Removes all elements that are in a specified collection from the current SortedSet<T> object.

GetEnumerator()

Returns an enumerator that iterates through the SortedSet<T>.

GetObjectData(SerializationInfo, StreamingContext)

Implements the ISerializable interface and returns the data that you must have to serialize a SortedSet<T> object.

GetViewBetween(T, T)

Returns a view of a subset in a SortedSet<T>.

IntersectWith(IEnumerable<T>)

Modifies the current SortedSet<T> object so that it contains only elements that are also in a specified collection.

IsProperSubsetOf(IEnumerable<T>)

Determines whether a SortedSet<T> object is a proper subset of the specified collection.

IsProperSupersetOf(IEnumerable<T>)

Determines whether a SortedSet<T> object is a proper superset of the specified collection.

IsSubsetOf(IEnumerable<T>)

Determines whether a SortedSet<T> object is a subset of the specified collection.

IsSupersetOf(IEnumerable<T>)

Determines whether a SortedSet<T> object is a superset of the specified collection.

OnDeserialization(Object)

Implements the ISerializable interface, and raises the deserialization event when the deserialization is completed.

Overlaps(IEnumerable<T>)

Determines whether the current SortedSet<T> object and a specified collection share common elements.

Remove(T)

Removes a specified item from the SortedSet<T>.

RemoveWhere(Predicate<T>)

Removes all elements that match the conditions defined by the specified predicate from a SortedSet<T>.

Reverse()

Returns an IEnumerable<T> that iterates over the SortedSet<T> in reverse order.

SetEquals(IEnumerable<T>)

Determines whether the current SortedSet<T> object and the specified collection contain the same elements.

SymmetricExceptWith(IEnumerable<T>)

Modifies the current SortedSet<T> object so that it contains only elements that are present either in the current object or in the specified collection, but not both.

TryGetValue(T, T)
UnionWith(IEnumerable<T>)

Modifies the current SortedSet<T> object so that it contains all elements that are present in either the current object or the specified collection.

Explicit Interface Implementations

ICollection<T>.Add(T)

Adds an item to an ICollection<T> object.

ICollection<T>.IsReadOnly

Gets a value that indicates whether a ICollection is read-only.

IEnumerable<T>.GetEnumerator()

Returns an enumerator that iterates through a collection.

ICollection.CopyTo(Array, Int32)

Copies the complete SortedSet<T> to a compatible one-dimensional array, starting at the specified array index.

ICollection.IsSynchronized

Gets a value that indicates whether access to the ICollection is synchronized (thread safe).

ICollection.SyncRoot

Gets an object that can be used to synchronize access to the ICollection.

IEnumerable.GetEnumerator()

Returns an enumerator that iterates through a collection.

IDeserializationCallback.OnDeserialization(Object)

Implements the IDeserializationCallback interface, and raises the deserialization event when the deserialization is completed.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Implements the ISerializable interface, and returns the data that you need to serialize the SortedSet<T> instance.

Extension Methods

ToImmutableArray<TSource>(IEnumerable<TSource>)
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)
ToImmutableDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)
ToImmutableDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)
ToImmutableDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>, IEqualityComparer<TValue>)
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>)
ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>)
ToImmutableHashSet<TSource>(IEnumerable<TSource>)
ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)
ToImmutableList<TSource>(IEnumerable<TSource>)
ToImmutableSortedDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)
ToImmutableSortedDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IComparer<TKey>)
ToImmutableSortedDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IComparer<TKey>, IEqualityComparer<TValue>)
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>)
ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>)
ToImmutableSortedSet<TSource>(IEnumerable<TSource>)
ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>)
CopyToDataTable<T>(IEnumerable<T>)
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)
Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)
Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)
Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)
All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Any<TSource>(IEnumerable<TSource>)
Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Append<TSource>(IEnumerable<TSource>, TSource)
AsEnumerable<TSource>(IEnumerable<TSource>)
Average(IEnumerable<Decimal>)
Average(IEnumerable<Double>)
Average(IEnumerable<Int32>)
Average(IEnumerable<Int64>)
Average(IEnumerable<Nullable<Decimal>>)
Average(IEnumerable<Nullable<Double>>)
Average(IEnumerable<Nullable<Int32>>)
Average(IEnumerable<Nullable<Int64>>)
Average(IEnumerable<Nullable<Single>>)
Average(IEnumerable<Single>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Cast<TResult>(IEnumerable)
Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)
Contains<TSource>(IEnumerable<TSource>, TSource)
Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>)
Count<TSource>(IEnumerable<TSource>)
Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
DefaultIfEmpty<TSource>(IEnumerable<TSource>)
DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)
Distinct<TSource>(IEnumerable<TSource>)
Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)
ElementAt<TSource>(IEnumerable<TSource>, Int32)
ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32)
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)
Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
First<TSource>(IEnumerable<TSource>)
First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
FirstOrDefault<TSource>(IEnumerable<TSource>)
FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)
GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)
GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)
GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>)
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>,TResult>)
GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>,TResult>, IEqualityComparer<TKey>)
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)
Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)
Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)
Last<TSource>(IEnumerable<TSource>)
Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
LastOrDefault<TSource>(IEnumerable<TSource>)
LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
LongCount<TSource>(IEnumerable<TSource>)
LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Max(IEnumerable<Decimal>)
Max(IEnumerable<Double>)
Max(IEnumerable<Int32>)
Max(IEnumerable<Int64>)
Max(IEnumerable<Nullable<Decimal>>)
Max(IEnumerable<Nullable<Double>>)
Max(IEnumerable<Nullable<Int32>>)
Max(IEnumerable<Nullable<Int64>>)
Max(IEnumerable<Nullable<Single>>)
Max(IEnumerable<Single>)
Max<TSource>(IEnumerable<TSource>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
Min(IEnumerable<Decimal>)
Min(IEnumerable<Double>)
Min(IEnumerable<Int32>)
Min(IEnumerable<Int64>)
Min(IEnumerable<Nullable<Decimal>>)
Min(IEnumerable<Nullable<Double>>)
Min(IEnumerable<Nullable<Int32>>)
Min(IEnumerable<Nullable<Int64>>)
Min(IEnumerable<Nullable<Single>>)
Min(IEnumerable<Single>)
Min<TSource>(IEnumerable<TSource>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
OfType<TResult>(IEnumerable)
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
Prepend<TSource>(IEnumerable<TSource>, TSource)
Reverse<TSource>(IEnumerable<TSource>)
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>)
SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>)
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)
SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)
SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
Single<TSource>(IEnumerable<TSource>)
Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
SingleOrDefault<TSource>(IEnumerable<TSource>)
SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Skip<TSource>(IEnumerable<TSource>, Int32)
SkipLast<TSource>(IEnumerable<TSource>, Int32)
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
Sum(IEnumerable<Decimal>)
Sum(IEnumerable<Double>)
Sum(IEnumerable<Int32>)
Sum(IEnumerable<Int64>)
Sum(IEnumerable<Nullable<Decimal>>)
Sum(IEnumerable<Nullable<Double>>)
Sum(IEnumerable<Nullable<Int32>>)
Sum(IEnumerable<Nullable<Int64>>)
Sum(IEnumerable<Nullable<Single>>)
Sum(IEnumerable<Single>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Take<TSource>(IEnumerable<TSource>, Int32)
TakeLast<TSource>(IEnumerable<TSource>, Int32)
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
ToArray<TSource>(IEnumerable<TSource>)
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)
ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)
ToHashSet<TSource>(IEnumerable<TSource>)
ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)
ToList<TSource>(IEnumerable<TSource>)
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)
ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)
Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)
AsParallel(IEnumerable)
AsParallel<TSource>(IEnumerable<TSource>)
AsQueryable(IEnumerable)
AsQueryable<TElement>(IEnumerable<TElement>)
Ancestors<T>(IEnumerable<T>)
Ancestors<T>(IEnumerable<T>, XName)
AncestorsAndSelf(IEnumerable<XElement>)
AncestorsAndSelf(IEnumerable<XElement>, XName)
Attributes(IEnumerable<XElement>)
Attributes(IEnumerable<XElement>, XName)
DescendantNodes<T>(IEnumerable<T>)
DescendantNodesAndSelf(IEnumerable<XElement>)
Descendants<T>(IEnumerable<T>)
Descendants<T>(IEnumerable<T>, XName)
DescendantsAndSelf(IEnumerable<XElement>)
DescendantsAndSelf(IEnumerable<XElement>, XName)
Elements<T>(IEnumerable<T>)
Elements<T>(IEnumerable<T>, XName)
InDocumentOrder<T>(IEnumerable<T>)
Nodes<T>(IEnumerable<T>)
Remove(IEnumerable<XAttribute>)
Remove<T>(IEnumerable<T>)