Movatterモバイル変換


[0]ホーム

URL:


Skip to main contentSkip to in-page navigation

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft EdgeMore info about Internet Explorer and Microsoft Edge
Table of contentsExit editor mode

ConcurrentDictionary<TKey,TValue> Class

Definition

Namespace:
System.Collections.Concurrent
Assemblies:
mscorlib.dll, System.Collections.Concurrent.dll
Assemblies:
netstandard.dll, System.Collections.Concurrent.dll
Assembly:
System.Collections.Concurrent.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
ConcurrentDictionary.cs
Source:
ConcurrentDictionary.cs
Source:
ConcurrentDictionary.cs
Source:
ConcurrentDictionary.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Represents a thread-safe collection of key/value pairs that can be accessed by multiple threads concurrently.

generic <typename TKey, typename TValue>public ref class ConcurrentDictionary : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IDictionary<TKey, TValue>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IReadOnlyCollection<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IReadOnlyDictionary<TKey, TValue>, System::Collections::IDictionary
generic <typename TKey, typename TValue>public ref class ConcurrentDictionary : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::Generic::IDictionary<TKey, TValue>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<TKey, TValue>>, System::Collections::IDictionary
public class ConcurrentDictionary<TKey,TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IDictionary<TKey,TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>, System.Collections.IDictionary
[System.Runtime.InteropServices.ComVisible(false)][System.Serializable]public class ConcurrentDictionary<TKey,TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IDictionary<TKey,TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionary
[System.Runtime.InteropServices.ComVisible(false)][System.Serializable]public class ConcurrentDictionary<TKey,TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IDictionary<TKey,TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>, System.Collections.IDictionary
public class ConcurrentDictionary<TKey,TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.Generic.IDictionary<TKey,TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>, System.Collections.IDictionary
type ConcurrentDictionary<'Key, 'Value> = class    interface ICollection<KeyValuePair<'Key, 'Value>>    interface seq<KeyValuePair<'Key, 'Value>>    interface IEnumerable    interface IDictionary<'Key, 'Value>    interface IReadOnlyCollection<KeyValuePair<'Key, 'Value>>    interface IReadOnlyDictionary<'Key, 'Value>    interface ICollection    interface IDictionary
[<System.Runtime.InteropServices.ComVisible(false)>][<System.Serializable>]type ConcurrentDictionary<'Key, 'Value> = class    interface IDictionary<'Key, 'Value>    interface ICollection<KeyValuePair<'Key, 'Value>>    interface seq<KeyValuePair<'Key, 'Value>>    interface IDictionary    interface ICollection    interface IEnumerable
[<System.Runtime.InteropServices.ComVisible(false)>][<System.Serializable>]type ConcurrentDictionary<'Key, 'Value> = class    interface IDictionary<'Key, 'Value>    interface ICollection<KeyValuePair<'Key, 'Value>>    interface seq<KeyValuePair<'Key, 'Value>>    interface IEnumerable    interface IDictionary    interface ICollection    interface IReadOnlyDictionary<'Key, 'Value>    interface IReadOnlyCollection<KeyValuePair<'Key, 'Value>>
type ConcurrentDictionary<'Key, 'Value> = class    interface IDictionary<'Key, 'Value>    interface ICollection<KeyValuePair<'Key, 'Value>>    interface seq<KeyValuePair<'Key, 'Value>>    interface IDictionary    interface ICollection    interface IEnumerable
Public Class ConcurrentDictionary(Of TKey, TValue)Implements ICollection(Of KeyValuePair(Of TKey, TValue)), IDictionary, IDictionary(Of TKey, TValue), IEnumerable(Of KeyValuePair(Of TKey, TValue)), IReadOnlyCollection(Of KeyValuePair(Of TKey, TValue)), IReadOnlyDictionary(Of TKey, TValue)
Public Class ConcurrentDictionary(Of TKey, TValue)Implements ICollection(Of KeyValuePair(Of TKey, TValue)), IDictionary, IDictionary(Of TKey, TValue), IEnumerable(Of KeyValuePair(Of TKey, TValue))

Type Parameters

TKey

The type of the keys in the dictionary.

TValue

The type of the values in the dictionary.

Inheritance
ConcurrentDictionary<TKey,TValue>
Attributes
Implements

Examples

The following example shows how to construct aConcurrentDictionary<TKey,TValue> object.

class CD_Ctor{        // Demonstrates:        //      ConcurrentDictionary<TKey, TValue> ctor(concurrencyLevel, initialCapacity)        //      ConcurrentDictionary<TKey, TValue>[TKey]        static void Main()        {            // We know how many items we want to insert into the ConcurrentDictionary.            // So set the initial capacity to some prime number above that, to ensure that            // the ConcurrentDictionary does not need to be resized while initializing it.            int NUMITEMS = 64;            int initialCapacity = 101;            // The higher the concurrencyLevel, the higher the theoretical number of operations            // that could be performed concurrently on the ConcurrentDictionary.  However, global            // operations like resizing the dictionary take longer as the concurrencyLevel rises.            // For the purposes of this example, we'll compromise at numCores * 2.            int numProcs = Environment.ProcessorCount;            int concurrencyLevel = numProcs * 2;            // Construct the dictionary with the desired concurrencyLevel and initialCapacity            ConcurrentDictionary<int, int> cd = new ConcurrentDictionary<int, int>(concurrencyLevel, initialCapacity);            // Initialize the dictionary            for (int i = 0; i < NUMITEMS; i++) cd[i] = i * i;            Console.WriteLine("The square of 23 is {0} (should be {1})", cd[23], 23 * 23);        }}
// Demonstrates://      ConcurrentDictionary<TKey, TValue> ctor(concurrencyLevel, initialCapacity)//      ConcurrentDictionary<TKey, TValue>[TKey]// We know how many items we want to insert into the ConcurrentDictionary.// So set the initial capacity to some prime number above that, to ensure that// the ConcurrentDictionary does not need to be resized while initializing it.let NUMITEMS = 64let initialCapacity = 101// The higher the concurrencyLevel, the higher the theoretical number of operations// that could be performed concurrently on the ConcurrentDictionary.  However, global// operations like resizing the dictionary take longer as the concurrencyLevel rises.// For the purposes of this example, we'll compromise at numCores * 2.let numProcs = Environment.ProcessorCountlet concurrencyLevel = numProcs * 2// Construct the dictionary with the desired concurrencyLevel and initialCapacitylet cd = ConcurrentDictionary<int, int>(concurrencyLevel, initialCapacity)// Initialize the dictionaryfor i = 0 to NUMITEMS - 1 do    cd[i] <- i * iprintfn $"The square of 23 is {cd[23]} (should be {23 * 23})"
Imports System.Collections.ConcurrentImports System.Threading.TasksClass CD_Ctor    ' Demonstrates:    ' ConcurrentDictionary<TKey, TValue> ctor(concurrencyLevel, initialCapacity)    ' ConcurrentDictionary<TKey, TValue>[TKey]    Shared Sub Main()        ' We know how many items we want to insert into the ConcurrentDictionary.        ' So set the initial capacity to some prime number above that, to ensure that        ' the ConcurrentDictionary does not need to be resized while initializing it.        Dim NUMITEMS As Integer = 64        Dim initialCapacity As Integer = 101        ' The higher the concurrencyLevel, the higher the theoretical number of operations        ' that could be performed concurrently on the ConcurrentDictionary. However, global        ' operations like resizing the dictionary take longer as the concurrencyLevel rises.         ' For the purposes of this example, we'll compromise at numCores * 2.        Dim numProcs As Integer = Environment.ProcessorCount        Dim concurrencyLevel As Integer = numProcs * 2        ' Construct the dictionary with the desired concurrencyLevel and initialCapacity        Dim cd As New ConcurrentDictionary(Of Integer, Integer)(concurrencyLevel, initialCapacity)        ' Initialize the dictionary        For i As Integer = 0 To NUMITEMS - 1            cd(i) = i * i        Next        Console.WriteLine("The square of 23 is {0} (should be {1})", cd(23), 23 * 23)    End SubEnd Class

Remarks

For very largeConcurrentDictionary<TKey,TValue> objects, you can increase the maximum array size to 2 gigabytes (GB) on a 64-bit system by setting the<gcAllowVeryLargeObjects> configuration element totrue in the run-time environment.

Note

ConcurrentDictionary<TKey,TValue> implements theIReadOnlyCollection<T> andIReadOnlyDictionary<TKey,TValue> interfaces starting with the .NET Framework 4.6; in previous versions of the .NET Framework, theConcurrentDictionary<TKey,TValue> class did not implement these interfaces.

Like theSystem.Collections.Generic.Dictionary<TKey,TValue> class,ConcurrentDictionary<TKey,TValue> implements theIDictionary<TKey,TValue> interface. In addition,ConcurrentDictionary<TKey,TValue> provides several methods for adding or updating key/value pairs in the dictionary, as described in the following table.

To do thisUse this methodUsage notes
Add a new key to the dictionary, if it doesn't already exist in the dictionaryTryAddThis method adds the specified key/value pair, if the key doesn't currently exist in the dictionary. The method returnstrue orfalse depending on whether the new pair was added.
Update the value for an existing key in the dictionary, if that key has a specific valueTryUpdateThis method checks whether the key has a specified value, and if it does, updates the key with a new value. It's similar to theCompareExchange method, except that it's used for dictionary elements.
Store a key/value pair in the dictionary unconditionally, and overwrite the value of a key that already existsThe indexer's setter:dictionary[key] = newValue
Add a key/value pair to the dictionary, or if the key already exists, update the value for the key based on the key's existing valueAddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>)

-or-

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>)
AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>) accepts the key and two delegates. It uses the first delegate if the key doesn't exist in the dictionary; it accepts the key and returns the value that should be added for the key. It uses the second delegate if the key does exist; it accepts the key and its current value, and it returns the new value that should be set for the key.

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>) accepts the key, a value to add, and the update delegate. This is the same as the previous overload, except that it doesn't use a delegate to add a key.
Get the value for a key in the dictionary, adding the value to the dictionary and returning it if the key doesn't existGetOrAdd(TKey, TValue)

-or-

GetOrAdd(TKey, Func<TKey,TValue>)
These overloads provide lazy initialization for a key/value pair in the dictionary, adding the value only if it's not there.

GetOrAdd(TKey, TValue) takes the value to be added if the key doesn't exist.

GetOrAdd(TKey, Func<TKey,TValue>) takes a delegate that will generate the value if the key doesn't exist.

All these operations are atomic and are thread-safe with regards to all other operations on theConcurrentDictionary<TKey,TValue> class. The only exceptions are the methods that accept a delegate, that is,AddOrUpdate andGetOrAdd. For modifications and write operations to the dictionary,ConcurrentDictionary<TKey,TValue> uses fine-grained locking to ensure thread safety. (Read operations on the dictionary are performed in a lock-free manner.) However, delegates for these methods are called outside the locks to avoid the problems that can arise from executing unknown code under a lock. Therefore, the code executed by these delegates is not subject to the atomicity of the operation.

Constructors

NameDescription
ConcurrentDictionary<TKey,TValue>()

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that is empty, has the default concurrency level, has the default initial capacity, and uses the default comparer for the key type.

ConcurrentDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that contains elements copied from the specifiedIEnumerable has the default concurrency level, has the default initial capacity, and uses the specifiedIEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>)

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that contains elements copied from the specifiedIEnumerable<T>, has the default concurrency level, has the default initial capacity, and uses the default comparer for the key type.

ConcurrentDictionary<TKey,TValue>(IEqualityComparer<TKey>)

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that is empty, has the default concurrency level and capacity, and uses the specifiedIEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(Int32, IEnumerable<KeyValuePair<TKey,TValue>>, IEqualityComparer<TKey>)

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that contains elements copied from the specifiedIEnumerable, and uses the specifiedIEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(Int32, Int32, IEqualityComparer<TKey>)

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that is empty, has the specified concurrency level, has the specified initial capacity, and uses the specifiedIEqualityComparer<T>.

ConcurrentDictionary<TKey,TValue>(Int32, Int32)

Initializes a new instance of theConcurrentDictionary<TKey,TValue> class that is empty, has the specified concurrency level and capacity, and uses the default comparer for the key type.

Properties

NameDescription
Comparer

Gets theIEqualityComparer<T> that is used to determine equality of keys for the dictionary.

Count

Gets the number of key/value pairs contained in theConcurrentDictionary<TKey,TValue>.

IsEmpty

Gets a value that indicates whether theConcurrentDictionary<TKey,TValue> is empty.

Item[TKey]

Gets or sets the value associated with the specified key.

Keys

Gets a collection containing the keys in theDictionary<TKey,TValue>.

Values

Gets a collection that contains the values in theDictionary<TKey,TValue>.

Methods

NameDescription
AddOrUpdate(TKey, Func<TKey,TValue>, Func<TKey,TValue,TValue>)

Uses the specified functions to add a key/value pair to theConcurrentDictionary<TKey,TValue> if the key does not already exist, or to update a key/value pair in theConcurrentDictionary<TKey,TValue> if the key already exists.

AddOrUpdate(TKey, TValue, Func<TKey,TValue,TValue>)

Adds a key/value pair to theConcurrentDictionary<TKey,TValue> if the key does not already exist, or updates a key/value pair in theConcurrentDictionary<TKey,TValue> by using the specified function if the key already exists.

AddOrUpdate<TArg>(TKey, Func<TKey,TArg,TValue>, Func<TKey,TValue,TArg,TValue>, TArg)

Uses the specified functions and argument to add a key/value pair to theConcurrentDictionary<TKey,TValue> if the key does not already exist, or to update a key/value pair in theConcurrentDictionary<TKey,TValue> if the key already exists.

Clear()

Removes all keys and values from theConcurrentDictionary<TKey,TValue>.

ContainsKey(TKey)

Determines whether theConcurrentDictionary<TKey,TValue> contains the specified key.

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited fromObject)
GetAlternateLookup<TAlternateKey>()

Gets an instance of a type that may be used to perform operations on aConcurrentDictionary<TKey,TValue> using aTAlternateKey as a key instead of aTKey.

GetEnumerator()

Returns an enumerator that iterates through theConcurrentDictionary<TKey,TValue>.

GetHashCode()

Serves as the default hash function.

(Inherited fromObject)
GetOrAdd(TKey, Func<TKey,TValue>)

Adds a key/value pair to theConcurrentDictionary<TKey,TValue> by using the specified function if the key does not already exist. Returns the new value, or the existing value if the key exists.

GetOrAdd(TKey, TValue)

Adds a key/value pair to theConcurrentDictionary<TKey,TValue> if the key does not already exist. Returns the new value, or the existing value if the key exists.

GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg)

Adds a key/value pair to theConcurrentDictionary<TKey,TValue> by using the specified function and an argument if the key does not already exist, or returns the existing value if the key exists.

GetType()

Gets theType of the current instance.

(Inherited fromObject)
MemberwiseClone()

Creates a shallow copy of the currentObject.

(Inherited fromObject)
ToArray()

Copies the key and value pairs stored in theConcurrentDictionary<TKey,TValue> to a new array.

ToString()

Returns a string that represents the current object.

(Inherited fromObject)
TryAdd(TKey, TValue)

Attempts to add the specified key and value to theConcurrentDictionary<TKey,TValue>.

TryGetAlternateLookup<TAlternateKey>(ConcurrentDictionary<TKey,TValue>.AlternateLookup<TAlternateKey>)

Gets an instance of a type that may be used to perform operations on aConcurrentDictionary<TKey,TValue>using aTAlternateKey as a key instead of aTKey.

TryGetValue(TKey, TValue)

Attempts to get the value associated with the specified key from theConcurrentDictionary<TKey,TValue>.

TryRemove(KeyValuePair<TKey,TValue>)

Removes a key and value from the dictionary.

TryRemove(TKey, TValue)

Attempts to remove and return the value that has the specified key from theConcurrentDictionary<TKey,TValue>.

TryUpdate(TKey, TValue, TValue)

Updates the value associated withkey tonewValue if the existing value withkey is equal tocomparisonValue.

Explicit Interface Implementations

NameDescription
ICollection.CopyTo(Array, Int32)

Copies the elements of theICollection to an array, starting at the specified array index.

ICollection.IsSynchronized

Gets a value that indicates whether access to theICollection is synchronized with the SyncRoot.

ICollection.SyncRoot

Gets an object that can be used to synchronize access to theICollection. This property is not supported.

ICollection<KeyValuePair<TKey,TValue>>.Add(KeyValuePair<TKey,TValue>)

Adds an item to the collection.

ICollection<KeyValuePair<TKey,TValue>>.Contains(KeyValuePair<TKey,TValue>)

Gets whether theICollection<T> contains an element with the specified key.

ICollection<KeyValuePair<TKey,TValue>>.CopyTo(KeyValuePair<TKey,TValue>[], Int32)

Copies the elements of theICollection to an array, starting at the specified array index.

ICollection<KeyValuePair<TKey,TValue>>.IsReadOnly

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

ICollection<KeyValuePair<TKey,TValue>>.Remove(KeyValuePair<TKey,TValue>)

Removes the specified key/value pair from the collection.

IDictionary.Add(Object, Object)

Adds the specified key and value to the dictionary.

IDictionary.Contains(Object)

Gets a value that indicates theIDictionary<TKey,TValue> contains an element with the specified key.

IDictionary.GetEnumerator()

Provides aIDictionaryEnumerator for theIDictionary<TKey,TValue>.

IDictionary.IsFixedSize

Gets a value that indicates whether theIDictionary<TKey,TValue> has a fixed size.

IDictionary.IsReadOnly

Gets a value that indicates whether theIDictionary<TKey,TValue> is read-only.

IDictionary.Item[Object]

Gets or sets the value associated with the specified key.

IDictionary.Keys

Gets anICollection that contains the keys of theIDictionary<TKey,TValue>.

IDictionary.Remove(Object)

Removes the element with the specified key from theIDictionary.

IDictionary.Values

Gets anICollection that contains the values in theIDictionary.

IDictionary<TKey,TValue>.Add(TKey, TValue)

Adds the specified key and value to theIDictionary<TKey,TValue>.

IDictionary<TKey,TValue>.Remove(TKey)

Removes the element with the specified key from theIDictionary<TKey,TValue>.

IEnumerable.GetEnumerator()

Returns an enumerator that iterates through theConcurrentDictionary<TKey,TValue>.

IReadOnlyDictionary<TKey,TValue>.Keys

Gets a collection containing the keys in theDictionary<TKey,TValue>.

IReadOnlyDictionary<TKey,TValue>.Values

Gets a collection that contains the values in theDictionary<TKey,TValue>.

Extension Methods

NameDescription
ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Creates aFrozenDictionary<TKey,TValue> from anIEnumerable<T> according to specified key selector function.

ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Creates aFrozenDictionary<TKey,TValue> from anIEnumerable<T> according to specified key selector and element selector functions.

ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>)

Creates aFrozenSet<T> with the specified values.

AsReadOnly<TKey,TValue>(IDictionary<TKey,TValue>)

Returns a read-onlyReadOnlyDictionary<TKey,TValue> wrapper for the current dictionary.

GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey, TValue)

Tries to get the value associated with the specifiedkey in thedictionary.

GetValueOrDefault<TKey,TValue>(IReadOnlyDictionary<TKey,TValue>, TKey)

Tries to get the value associated with the specifiedkey in thedictionary.

Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)

Tries to remove the value with the specifiedkey from thedictionary.

TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)

Tries to add the specifiedkey andvalue to thedictionary.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Creates an immutable array from the specified collection.

ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Constructs an immutable dictionary based on some transformation of a sequence.

ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Constructs an immutable dictionary from an existing collection of elements, applying a transformation function to the source keys.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>)

Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key and value comparers.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>)

Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key comparer.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Enumerates and transforms a sequence, and produces an immutable dictionary of its contents.

ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Enumerates a sequence, produces an immutable hash set of its contents, and uses the specified equality comparer for the set type.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

Enumerates a sequence and produces an immutable hash set of its contents.

ToImmutableList<TSource>(IEnumerable<TSource>)

Enumerates a sequence and produces an immutable list of its contents.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>)

Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key and value comparers.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>)

Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key comparer.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Enumerates a sequence, produces an immutable sorted set of its contents, and uses the specified comparer.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

Enumerates a sequence and produces an immutable sorted set of its contents.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

CopiesDataRow objects to the specifiedDataTable, given an inputIEnumerable<T> object where the generic parameterT isDataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

CopiesDataRow objects to the specifiedDataTable, given an inputIEnumerable<T> object where the generic parameterT isDataRow.

CopyToDataTable<T>(IEnumerable<T>)

Returns aDataTable that contains copies of theDataRow objects, given an inputIEnumerable<T> object where the generic parameterT isDataRow.

ToAsyncEnumerable<TSource>(IEnumerable<TSource>)

Creates a newIAsyncEnumerable<T> that iterates throughsource.

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Applies an accumulator function over a sequence.

Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value.

Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

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.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource,TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Applies an accumulator function over a sequence, grouping results by key.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Applies an accumulator function over a sequence, grouping results by key.

All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Determines whether all elements of a sequence satisfy a condition.

Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Determines whether any element of a sequence satisfies a condition.

Any<TSource>(IEnumerable<TSource>)

Determines whether a sequence contains any elements.

Append<TSource>(IEnumerable<TSource>, TSource)

Appends a value to the end of the sequence.

AsEnumerable<TSource>(IEnumerable<TSource>)

Returns the input typed asIEnumerable<T>.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Computes the average of a sequence ofDecimal values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Computes the average of a sequence ofDouble values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Computes the average of a sequence ofInt32 values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Computes the average of a sequence ofInt64 values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Computes the average of a sequence of nullableDecimal values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Computes the average of a sequence of nullableDouble values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Computes the average of a sequence of nullableInt32 values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Computes the average of a sequence of nullableInt64 values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Computes the average of a sequence of nullableSingle values that are obtained by invoking a transform function on each element of the input sequence.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Computes the average of a sequence ofSingle values that are obtained by invoking a transform function on each element of the input sequence.

Cast<TResult>(IEnumerable)

Casts the elements of anIEnumerable to the specified type.

Chunk<TSource>(IEnumerable<TSource>, Int32)

Splits the elements of a sequence into chunks of size at mostsize.

Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Concatenates two sequences.

Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>)

Determines whether a sequence contains a specified element by using a specifiedIEqualityComparer<T>.

Contains<TSource>(IEnumerable<TSource>, TSource)

Determines whether a sequence contains a specified element by using the default equality comparer.

Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns a number that represents how many elements in the specified sequence satisfy a condition.

Count<TSource>(IEnumerable<TSource>)

Returns the number of elements in a sequence.

CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Returns the count of elements in the source sequence grouped by key.

DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)

Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty.

Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Returns distinct elements from a sequence by using a specifiedIEqualityComparer<T> to compare values.

Distinct<TSource>(IEnumerable<TSource>)

Returns distinct elements from a sequence by using the default equality comparer to compare values.

DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Returns distinct elements from a sequence according to a specified key selector function and using a specified comparer to compare keys.

DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Returns distinct elements from a sequence according to a specified key selector function.

ElementAt<TSource>(IEnumerable<TSource>, Index)

Returns the element at a specified index in a sequence.

ElementAt<TSource>(IEnumerable<TSource>, Int32)

Returns the element at a specified index in a sequence.

ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index)

Returns the element at a specified index in a sequence or a default value if the index is out of range.

ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32)

Returns the element at a specified index in a sequence or a default value if the index is out of range.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Produces the set difference of two sequences by using the specifiedIEqualityComparer<T> to compare values.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Produces the set difference of two sequences by using the default equality comparer to compare values.

ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Produces the set difference of two sequences according to a specified key selector function.

ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>)

Produces the set difference of two sequences according to a specified key selector function.

First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns the first element in a sequence that satisfies a specified condition.

First<TSource>(IEnumerable<TSource>)

Returns the first element of a sequence.

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

Returns the first element of a sequence, or a specified default value if the sequence contains no elements.

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Returns the first element of the sequence that satisfies a condition, or a specified default value if no such element is found.

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Returns the first element of a sequence, or a default value if the sequence contains no elements.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Groups the elements of a sequence according to a specified key selector function.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

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.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

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.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)

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.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)

Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>, IEqualityComparer<TKey>)

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.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)

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.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>,TResult>, IEqualityComparer<TKey>)

Correlates the elements of two sequences based on key equality and groups the results. A specifiedIEqualityComparer<T> is used to compare keys.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>,TResult>)

Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys.

Index<TSource>(IEnumerable<TSource>)

Returns an enumerable that incorporates the element's index into a tuple.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Produces the set intersection of two sequences by using the specifiedIEqualityComparer<T> to compare values.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Produces the set intersection of two sequences by using the default equality comparer to compare values.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Produces the set intersection of two sequences according to a specified key selector function.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>)

Produces the set intersection of two sequences according to a specified key selector function.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)

Correlates the elements of two sequences based on matching keys. A specifiedIEqualityComparer<T> is used to compare keys.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)

Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.

Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns the last element of a sequence that satisfies a specified condition.

Last<TSource>(IEnumerable<TSource>)

Returns the last element of a sequence.

LastOrDefault<TSource>(IEnumerable<TSource>, TSource)

Returns the last element of a sequence, or a specified default value if the sequence contains no elements.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Returns the last element of a sequence that satisfies a condition, or a specified default value if no such element is found.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns the last element of a sequence that satisfies a condition or a default value if no such element is found.

LastOrDefault<TSource>(IEnumerable<TSource>)

Returns the last element of a sequence, or a default value if the sequence contains no elements.

LeftJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)

Correlates the elements of two sequences based on matching keys. A specifiedIEqualityComparer<T> is used to compare keys.

LeftJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)

Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.

LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns anInt64 that represents how many elements in a sequence satisfy a condition.

LongCount<TSource>(IEnumerable<TSource>)

Returns anInt64 that represents the total number of elements in a sequence.

Max<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Returns the maximum value in a generic sequence.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Invokes a transform function on each element of a sequence and returns the maximumDecimal value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Invokes a transform function on each element of a sequence and returns the maximumDouble value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Invokes a transform function on each element of a sequence and returns the maximumInt32 value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Invokes a transform function on each element of a sequence and returns the maximumInt64 value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Invokes a transform function on each element of a sequence and returns the maximum nullableDecimal value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Invokes a transform function on each element of a sequence and returns the maximum nullableDouble value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Invokes a transform function on each element of a sequence and returns the maximum nullableInt32 value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Invokes a transform function on each element of a sequence and returns the maximum nullableInt64 value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Invokes a transform function on each element of a sequence and returns the maximum nullableSingle value.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Invokes a transform function on each element of a sequence and returns the maximumSingle value.

Max<TSource>(IEnumerable<TSource>)

Returns the maximum value in a generic sequence.

Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Invokes a transform function on each element of a generic sequence and returns the maximum resulting value.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Returns the maximum value in a generic sequence according to a specified key selector function and key comparer.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Returns the maximum value in a generic sequence according to a specified key selector function.

Min<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Returns the minimum value in a generic sequence.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Invokes a transform function on each element of a sequence and returns the minimumDecimal value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Invokes a transform function on each element of a sequence and returns the minimumDouble value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Invokes a transform function on each element of a sequence and returns the minimumInt32 value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Invokes a transform function on each element of a sequence and returns the minimumInt64 value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Invokes a transform function on each element of a sequence and returns the minimum nullableDecimal value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Invokes a transform function on each element of a sequence and returns the minimum nullableDouble value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Invokes a transform function on each element of a sequence and returns the minimum nullableInt32 value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Invokes a transform function on each element of a sequence and returns the minimum nullableInt64 value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Invokes a transform function on each element of a sequence and returns the minimum nullableSingle value.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Invokes a transform function on each element of a sequence and returns the minimumSingle value.

Min<TSource>(IEnumerable<TSource>)

Returns the minimum value in a generic sequence.

Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Invokes a transform function on each element of a generic sequence and returns the minimum resulting value.

MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Returns the minimum value in a generic sequence according to a specified key selector function and key comparer.

MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Returns the minimum value in a generic sequence according to a specified key selector function.

OfType<TResult>(IEnumerable)

Filters the elements of anIEnumerable based on a specified type.

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

Sorts the elements of a sequence in ascending order.

Order<T>(IEnumerable<T>)

Sorts the elements of a sequence in ascending order.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Sorts the elements of a sequence in ascending order by using a specified comparer.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Sorts the elements of a sequence in ascending order according to a key.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Sorts the elements of a sequence in descending order by using a specified comparer.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Sorts the elements of a sequence in descending order according to a key.

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

Sorts the elements of a sequence in descending order.

OrderDescending<T>(IEnumerable<T>)

Sorts the elements of a sequence in descending order.

Prepend<TSource>(IEnumerable<TSource>, TSource)

Adds a value to the beginning of the sequence.

Reverse<TSource>(IEnumerable<TSource>)

Inverts the order of the elements in a sequence.

RightJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)

Correlates the elements of two sequences based on matching keys. A specifiedIEqualityComparer<T> is used to compare keys.

RightJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)

Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Projects each element of a sequence into a new form.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)

Projects each element of a sequence into a new form by incorporating the element's index.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>)

Projects each element of a sequence to anIEnumerable<T> and flattens the resulting sequences into one sequence.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>)

Projects each element of a sequence to anIEnumerable<T>, and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Projects each element of a sequence to anIEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Projects each element of a sequence to anIEnumerable<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.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Determines whether two sequences are equal by comparing their elements by using a specifiedIEqualityComparer<T>.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.

Shuffle<TSource>(IEnumerable<TSource>)

Shuffles the order of the elements of a sequence.

Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.

Single<TSource>(IEnumerable<TSource>)

Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.

SingleOrDefault<TSource>(IEnumerable<TSource>, TSource)

Returns the only element of a sequence, or a specified default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Returns the only element of a sequence that satisfies a specified condition, or a specified default value if no such element exists; this method throws an exception if more than one element satisfies the condition.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

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.

SingleOrDefault<TSource>(IEnumerable<TSource>)

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.

Skip<TSource>(IEnumerable<TSource>, Int32)

Bypasses a specified number of elements in a sequence and then returns the remaining elements.

SkipLast<TSource>(IEnumerable<TSource>, Int32)

Returns a new enumerable collection that contains the elements fromsource with the lastcount elements of the source collection omitted.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

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.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Computes the sum of the sequence ofDecimal values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Computes the sum of the sequence ofDouble values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Computes the sum of the sequence ofInt32 values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Computes the sum of the sequence ofInt64 values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Computes the sum of the sequence of nullableDecimal values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Computes the sum of the sequence of nullableDouble values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Computes the sum of the sequence of nullableInt32 values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Computes the sum of the sequence of nullableInt64 values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Computes the sum of the sequence of nullableSingle values that are obtained by invoking a transform function on each element of the input sequence.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Computes the sum of the sequence ofSingle values that are obtained by invoking a transform function on each element of the input sequence.

Take<TSource>(IEnumerable<TSource>, Int32)

Returns a specified number of contiguous elements from the start of a sequence.

Take<TSource>(IEnumerable<TSource>, Range)

Returns a specified range of contiguous elements from a sequence.

TakeLast<TSource>(IEnumerable<TSource>, Int32)

Returns a new enumerable collection that contains the lastcount elements fromsource.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Returns elements from a sequence as long as a specified condition is true.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

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.

ToArray<TSource>(IEnumerable<TSource>)

Creates an array from aIEnumerable<T>.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Creates aDictionary<TKey,TValue> from anIEnumerable<T> according to a specified key selector function and key comparer.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Creates aDictionary<TKey,TValue> from anIEnumerable<T> according to a specified key selector function.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Creates aDictionary<TKey,TValue> from anIEnumerable<T> according to a specified key selector function, a comparer, and an element selector function.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Creates aDictionary<TKey,TValue> from anIEnumerable<T> according to specified key selector and element selector functions.

ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Creates aHashSet<T> from anIEnumerable<T> using thecomparer to compare keys.

ToHashSet<TSource>(IEnumerable<TSource>)

Creates aHashSet<T> from anIEnumerable<T>.

ToList<TSource>(IEnumerable<TSource>)

Creates aList<T> from anIEnumerable<T>.

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Creates aLookup<TKey,TElement> from anIEnumerable<T> according to a specified key selector function and key comparer.

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Creates aLookup<TKey,TElement> from anIEnumerable<T> according to a specified key selector function.

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Creates aLookup<TKey,TElement> from anIEnumerable<T> according to a specified key selector function, a comparer and an element selector function.

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Creates aLookup<TKey,TElement> from anIEnumerable<T> according to specified key selector and element selector functions.

TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32)

Attempts to determine the number of elements in a sequence without forcing an enumeration.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Produces the set union of two sequences by using a specifiedIEqualityComparer<T>.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Produces the set union of two sequences by using the default equality comparer.

UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Produces the set union of two sequences according to a specified key selector function.

UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>)

Produces the set union of two sequences according to a specified key selector function.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filters a sequence of values based on a predicate.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.

Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>)

Produces a sequence of tuples with elements from the two specified sequences.

Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Produces a sequence of tuples with elements from the three specified sequences.

Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.

AsParallel(IEnumerable)

Enables parallelization of a query.

AsParallel<TSource>(IEnumerable<TSource>)

Enables parallelization of a query.

AsQueryable(IEnumerable)

Converts anIEnumerable to anIQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Converts a genericIEnumerable<T> to a genericIQueryable<T>.

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

Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Only elements that have a matchingXName are included in the collection.

Ancestors<T>(IEnumerable<T>)

Returns a collection of elements that contains the ancestors of every node in the source 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>, XName)

Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Only elements that have a matchingXName are included in the collection.

Descendants<T>(IEnumerable<T>)

Returns a collection of elements that contains the descendant 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. Only elements that have a matchingXName 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.

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.

Applies to

Thread Safety

All public and protected members ofConcurrentDictionary<TKey,TValue> are thread-safe and may be used concurrently from multiple threads. However, members accessed through one of the interfaces theConcurrentDictionary<TKey,TValue> implements, including extension methods, are not guaranteed to be thread safe and may need to be synchronized by the caller.

See also

Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, seeour contributor guide.

Feedback

Was this page helpful?

YesNoNo

Need help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Suggest a fix?

In this article

Was this page helpful?

YesNo
NoNeed help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Suggest a fix?