ImmutableArray<T> 結構

定義

代表一個不可變的陣列,也就是說一旦建立就無法更改。

generic <typename T>
public value class ImmutableArray : IEquatable<System::Collections::Immutable::ImmutableArray<T>>, System::Collections::Generic::ICollection<T>, System::Collections::Generic::IEnumerable<T>, System::Collections::Generic::IList<T>, System::Collections::Generic::IReadOnlyCollection<T>, System::Collections::Generic::IReadOnlyList<T>, System::Collections::IList, System::Collections::Immutable::IImmutableList<T>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public struct ImmutableArray<T> : IEquatable<System.Collections.Immutable.ImmutableArray<T>>, System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IList<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>, System.Collections.IList, System.Collections.Immutable.IImmutableList<T>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type ImmutableArray<'T> = struct
    interface IReadOnlyList<'T>
    interface IReadOnlyCollection<'T>
    interface seq<'T>
    interface IEnumerable
    interface IList<'T>
    interface ICollection<'T>
    interface IImmutableList<'T>
    interface IList
    interface ICollection
Public Structure ImmutableArray(Of T)
Implements ICollection(Of T), IEnumerable(Of T), IEquatable(Of ImmutableArray(Of T)), IImmutableList(Of T), IList, IList(Of T), IReadOnlyCollection(Of T), IReadOnlyList(Of T), IStructuralComparable, IStructuralEquatable

類型參數

T

陣列所儲存之元素的類型。

繼承
ImmutableArray<T>
實作

範例

此範例示範如何建立不可變的陣列,並逐一查看其中的專案:

// Create an immutable array of numbers
ImmutableArray<int> numbers = ImmutableArray.Create(1, 2, 3, 4, -1, -2);

// Iterate over all items in the array and print them
foreach (int n in numbers)
{
    Console.Write(n);
    Console.Write(' ');
}
// Output: 1 2 3 4 -1 -2

此範例示範如何新增和移除原始數位中的專案,以建立新的不可變數組:

ImmutableArray<int> numbers2 = numbers.RemoveAt(0).Add(-3);
// numbers2 will contain: 2 3 4 -1 -2 -3

此範例展示了如何利用 ImmutableArray<T>.Builder建立不可變陣列:

// Create immutable array builder
ImmutableArray<int>.Builder builder = ImmutableArray.CreateBuilder<int>();

// Iterate over all items in the original array and add positive elements to the builder
for (int i = 0; i < numbers.Length; i++)
{
    if (numbers[i] > 0) builder.Add(numbers[i]);
}

// Create an immutable array from the contents of the builder
ImmutableArray<int> numbers3 = builder.ToImmutable();
// numbers3 will contain: 1 2 3 4

備註

有不同的情境最適合ImmutableArray<T>,有些則最適合。ImmutableList<T>

使用不可變數組的原因:

  • 更新數據很少見,或元素數目相當小(小於16個專案)
  • 您必須能夠在效能關鍵區段中逐一查看數據
  • 您有許多不可變集合的實例,而且無法負擔將數據保留在樹狀結構中

使用不可變清單的原因:

  • 更新數據很常見,或項目數目不預期很小
  • 更新集合比反覆運算內容更具效能

下表總結了 的效能特性 ImmutableArray<T>

操作 ImmutableArray 複雜度 不可變列表複雜度 Comments
Item O(1) O(log n) 直接編製基礎陣列的索引
Add() O(n) O(log n) 需要建立新的陣列

欄位

名稱 Description
Empty

取得空的不可變數組。

屬性

名稱 Description
IsDefault

取得值,指出這個陣列是否已宣告,但未初始化。

IsDefaultOrEmpty

會得到一個值,表示該值 ImmutableArray<T> 是否為空或未初始化。

IsEmpty

會得到一個值,表示這個值 ImmutableArray<T> 是否為空。

Item[Int32]

取得不可變數組中指定索引處的專案。

Length

取得陣列中的項目數目。

方法

名稱 Description
Add(T)

傳回原始數位的複本,並將指定的專案新增至結尾。

AddRange(IEnumerable<T>)

傳回原始數位的複本,其中包含加入至陣列結尾的指定專案。

AddRange(ImmutableArray<T>)

傳回原始數位的複本,其中包含加入至陣列結尾的指定專案。

As<TOther>()

傳回新的不可變數組,其中包含這個數位的項目轉換成不同的類型。

CastArray<TOther>()

透過將底層陣列鑄造為型別ImmutableArray<T>為 的陣列,初始化結構體的新實例TOther

CastUp<TDerived>(ImmutableArray<TDerived>)

根據現有實例的內容初始化結構的新實例 ImmutableArray<T> ,允許協變靜態鑄造有效重用現有陣列。

Clear()

傳回已移除所有元素的陣列。

Contains(T)

判斷指定的專案是否存在於陣列中。

CopyTo(Int32, T[], Int32, Int32)

將這個陣列中的指定項目複製到指定起始索引處的指定數位。

CopyTo(T[], Int32)

從指定的目的地索引開始,將這個數位的內容複製到指定的陣列。

CopyTo(T[])

將這個陣列的內容複製到指定的陣列。

Equals(ImmutableArray<T>)

指出指定的陣列是否等於這個陣列。

Equals(Object)

判斷這個陣列是否等於指定的物件。

GetEnumerator()

傳回逐一查看陣列內容的列舉值。

GetHashCode()

傳回這個實例的哈希碼。

IndexOf(T, Int32, IEqualityComparer<T>)

搜尋指定項目的陣列。

IndexOf(T, Int32, Int32, IEqualityComparer<T>)

搜尋指定項目的陣列。

IndexOf(T, Int32, Int32)

搜尋指定項目的陣列。

IndexOf(T, Int32)

搜尋指定項目的陣列。

IndexOf(T)

搜尋指定項目的陣列。

Insert(Int32, T)

傳回新的陣列,其中包含在指定位置插入的指定值。

InsertRange(Int32, IEnumerable<T>)

在指定的索引處插入指定的值。

InsertRange(Int32, ImmutableArray<T>)

在指定的索引處插入指定的值。

LastIndexOf(T, Int32, Int32, IEqualityComparer<T>)

搜尋指定項目的陣列;從陣列結尾開始。

LastIndexOf(T, Int32, Int32)

搜尋指定項目的陣列;從陣列結尾開始。

LastIndexOf(T, Int32)

搜尋指定項目的陣列;從陣列結尾開始。

LastIndexOf(T)

搜尋指定項目的陣列;從陣列結尾開始。

OfType<TResult>()

將這個陣列的項目篩選為可指派給指定型別的專案。

Remove(T, IEqualityComparer<T>)

傳回數位,其中第一個出現的指定專案已從陣列中移除。

如果找不到相符專案,則會傳回目前的陣列。

Remove(T)

傳回數位,其中第一個出現的指定專案已從陣列中移除。 如果找不到相符專案,則會傳回目前的陣列。

RemoveAll(Predicate<T>)

從符合指定條件的陣列中移除所有專案。

RemoveAt(Int32)

傳回數位,其項目位於已移除的指定位置。

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

從這個陣列中移除指定的專案。

RemoveRange(IEnumerable<T>)

從這個陣列中移除指定的專案。

RemoveRange(ImmutableArray<T>, IEqualityComparer<T>)

從此清單中移除指定的專案。

RemoveRange(ImmutableArray<T>)

從此清單中移除指定的值。

RemoveRange(Int32, Int32)

傳回數位,其項目位於已移除的指定位置。

Replace(T, T, IEqualityComparer<T>)

尋找陣列中等於指定值的第一個專案,並以指定的新值取代值。

Replace(T, T)

尋找陣列中等於指定值的第一個專案,並以指定的新值取代值。

SetItem(Int32, T)

將位於指定索引處的專案取代為指定的專案。

Sort()

使用預設比較子排序不可變數組中的專案。

Sort(IComparer<T>)

使用指定的比較子來排序不可變數組中的專案。

Sort(Int32, Int32, IComparer<T>)

使用指定的比較子,排序不可變數組中的指定專案。

ToBuilder()

建立可變動數位,其內容與這個數位相同,而且可以使用標準可變動介面在多個作業之間有效率地變動。

操作員

名稱 Description
Equality(ImmutableArray<T>, ImmutableArray<T>)

傳回值,這個值表示兩個陣列是否相等。

Equality(Nullable<ImmutableArray<T>>, Nullable<ImmutableArray<T>>)

傳回值,這個值表示兩個陣列是否相等。

Inequality(ImmutableArray<T>, ImmutableArray<T>)

傳回值,這個值表示兩個陣列是否不相等。

Inequality(Nullable<ImmutableArray<T>>, Nullable<ImmutableArray<T>>)

檢查兩個陣列之間的不相等。

明確介面實作

名稱 Description
ICollection.CopyTo(Array, Int32)

從指定索引處開始,將此陣列複製到另一個陣列。

ICollection.Count

取得陣列的大小。

ICollection.IsSynchronized

請參考 ICollection 介面。 由於不可變集合是執行緒安全的,因此總是回傳 true

ICollection.SyncRoot

取得同步根目錄。

ICollection<T>.Add(T)

所有情況都是拋擲 NotSupportedException

ICollection<T>.Clear()

所有情況都是拋擲 NotSupportedException

ICollection<T>.Count

取得集合中的項目數目。

ICollection<T>.IsReadOnly

取得值,指出這個實例是否為唯讀。

ICollection<T>.Remove(T)

所有情況都是拋擲 NotSupportedException

IEnumerable.GetEnumerator()

傳回逐一查看不可變數組的列舉值。

IEnumerable<T>.GetEnumerator()

傳回逐一查看陣列舉值。

IImmutableList<T>.Add(T)

傳回原始數位的複本,並將指定的專案新增至結尾。

IImmutableList<T>.AddRange(IEnumerable<T>)

傳回原始數位的複本,其中包含加入至陣列結尾的指定專案。

IImmutableList<T>.Clear()

傳回已移除所有元素的陣列。

IImmutableList<T>.Insert(Int32, T)

傳回新的陣列,其中包含在指定位置插入的指定值。

IImmutableList<T>.InsertRange(Int32, IEnumerable<T>)

在指定的索引處插入指定的值。

IImmutableList<T>.Remove(T, IEqualityComparer<T>)

傳回陣列,其中第一個出現的指定專案已從陣列中移除;如果找不到相符專案,則會傳回目前的陣列。

IImmutableList<T>.RemoveAll(Predicate<T>)

從符合指定條件的陣列中移除所有專案。

IImmutableList<T>.RemoveAt(Int32)

傳回數位,其項目位於已移除的指定位置。

IImmutableList<T>.RemoveRange(IEnumerable<T>, IEqualityComparer<T>)

從這個陣列中移除指定的專案。

IImmutableList<T>.RemoveRange(Int32, Int32)

傳回數位,其項目位於已移除的指定位置。

IImmutableList<T>.Replace(T, T, IEqualityComparer<T>)

尋找陣列中等於指定值的第一個專案,並以指定的新值取代值。

IImmutableList<T>.SetItem(Int32, T)

將位於指定索引處的專案取代為指定的專案。

IList.Add(Object)

所有情況都是拋擲 NotSupportedException

IList.Clear()

所有情況都是拋擲 NotSupportedException

IList.Contains(Object)

所有情況都是拋擲 NotSupportedException

IList.IndexOf(Object)

取得指定索引處的值。

IList.Insert(Int32, Object)

所有情況都是拋擲 NotSupportedException

IList.IsFixedSize

取得值,指出這個實例是否為固定大小。

IList.IsReadOnly

取得值,指出這個實例是否為唯讀。

IList.Item[Int32]

在指定的索引上取得或設定 。Object

IList.Remove(Object)

所有情況都是拋擲 NotSupportedException

IList.RemoveAt(Int32)

所有情況都是拋擲 NotSupportedException

IList<T>.Insert(Int32, T)

所有情況都是拋擲 NotSupportedException

IList<T>.Item[Int32]

取得或設定唯讀清單中指定索引處的專案。

IList<T>.RemoveAt(Int32)

所有情況都是拋擲 NotSupportedException

IReadOnlyCollection<T>.Count

取得集合中的項目數目。

IReadOnlyList<T>.Item[Int32]

取得位於指定索引處的專案。

IStructuralComparable.CompareTo(Object, IComparer)

判斷目前的集合專案在之前、發生於與 相同的位置,或遵循排序順序中的另一個專案。

IStructuralEquatable.Equals(Object, IEqualityComparer)

判斷這個陣列在結構上是否等於指定的陣列。

IStructuralEquatable.GetHashCode(IEqualityComparer)

傳回目前實例的哈希碼。

擴充方法

名稱 Description
Aggregate<T>(ImmutableArray<T>, Func<T,T,T>)

以累積方式將函數套用於一連串元素。

Aggregate<TAccumulate,T>(ImmutableArray<T>, TAccumulate, Func<TAccumulate,T,TAccumulate>)

以累積方式將函數套用於一連串元素。

Aggregate<TAccumulate,TResult,T>(ImmutableArray<T>, TAccumulate, Func<TAccumulate,T,TAccumulate>, Func<TAccumulate,TResult>)

以累積方式將函數套用於一連串元素。

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

在序列上套用累加器函式。 指定的種子值會當做初始累加器值使用,而指定的函式則用來選取結果值。

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

在序列上套用累加器函式。 指定的種子值會當做初始累加器值使用。

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

在序列上套用累加器函式。

All<T>(ImmutableArray<T>, Func<T,Boolean>)

獲得一個值,表示該陣列中的所有元素是否符合給定條件。

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

判斷序列的所有專案是否符合條件。

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

傳回元素的篩選集合,其中包含來源集合中每個節點的上階。 集合中只會包含具有相符 XName 的專案。

Ancestors<T>(IEnumerable<T>)

傳回專案集合,其中包含來源集合中每個節點的上階。

Any<T>(ImmutableArray<T>, Func<T,Boolean>)

會得到一個值,表示陣列中是否包含符合指定條件的元素。

Any<T>(ImmutableArray<T>)

會取得一個值,表示陣列是否包含任何元素。

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

判斷序列的任何專案是否符合條件。

Any<TSource>(IEnumerable<TSource>)

判斷序列是否包含任何專案。

AsEnumerable<TSource>(IEnumerable<TSource>)

傳回 IEnumerable<T> 類型的輸入。

AsParallel(IEnumerable)

啟用查詢的平行處理。

AsParallel<TSource>(IEnumerable<TSource>)

啟用查詢的平行處理。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

AsQueryable<TElement>(IEnumerable<TElement>)

將泛型 IEnumerable<T> 轉換成泛型 IQueryable<T>

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

計算 Decimal 值序列的平均值,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算 Double 值序列的平均值,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算 Int32 值序列的平均值,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算 Int64 值序列的平均值,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Decimal 值序列的平均值。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Double 值序列的平均值。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Int32 值序列的平均值。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Int64 值序列的平均值。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Single 值序列的平均值。

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

計算 Single 值序列的平均值,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

BinarySearch<T>(ImmutableArray<T>, Int32, Int32, T, IComparer<T>)

在已排序的不可變陣列中搜尋指定元素,並回傳該元素的零基索引。

BinarySearch<T>(ImmutableArray<T>, Int32, Int32, T)

在已排序的不可變陣列中搜尋指定元素,若找到該元素,則回傳該元素的零為基礎索引。

BinarySearch<T>(ImmutableArray<T>, T, IComparer<T>)

在已排序的不可變陣列中搜尋指定元素,若找到該元素,則回傳該元素的零為基礎索引。

BinarySearch<T>(ImmutableArray<T>, T)

使用預設比較器搜尋已排序的不可變陣列,尋找指定元素,若找到該元素,則回傳該元素的零索引。

Cast<TResult>(IEnumerable)

IEnumerable 的項目轉換成指定的型別。

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

串連兩個序列。

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

使用指定的 IEqualityComparer<T>,判斷序列是否包含指定的專案。

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

判斷序列是否使用預設相等比較子來包含指定的專案。

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

傳回數位,代表指定序列中滿足條件的項目數目。

Count<TSource>(IEnumerable<TSource>)

傳回序列中的項目數目。

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

如果序列是空的,則傳回指定序列的專案或單一集合中的指定值。

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

如果序列是空的,則傳回指定序列的專案或單一集合中型別參數的預設值。

DescendantNodes<T>(IEnumerable<T>)

傳回來源集合中每個文件和專案之子代節點的集合。

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

傳回篩選的專案集合,其中包含來源集合中每個元素和檔的子代專案。 集合中只會包含具有相符 XName 的專案。

Descendants<T>(IEnumerable<T>)

傳回專案集合,其中包含來源集合中每個元素和檔的子代專案。

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

使用指定的 IEqualityComparer<T> 來比較值,從序列傳回不同的專案。

Distinct<TSource>(IEnumerable<TSource>)

使用預設相等比較子來比較值,從序列傳回不同的專案。

ElementAt<T>(ImmutableArray<T>, Int32)

回傳陣列中指定索引的元素。

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

傳回序列中指定索引處的專案。

ElementAtOrDefault<T>(ImmutableArray<T>, Int32)

傳回序列中指定索引處的專案,如果索引超出範圍,則傳回預設值。

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

傳回序列中指定索引處的專案,如果索引超出範圍,則傳回預設值。

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

傳回來源集合中每個專案和檔之子項目的篩選集合。 集合中只會包含具有相符 XName 的專案。

Elements<T>(IEnumerable<T>)

傳回來源集合中每個專案和檔的子專案集合。

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

使用指定的 IEqualityComparer<T> 來比較值,產生兩個序列的集合差異。

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

使用預設相等比較子來比較值,產生兩個序列的集合差異。

First<T>(ImmutableArray<T>, Func<T,Boolean>)

傳回序列中符合指定條件的第一個專案。

First<T>(ImmutableArray<T>)

回傳陣列中的第一個元素。

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

傳回序列中符合指定條件的第一個專案。

First<TSource>(IEnumerable<TSource>)

傳回序列的第一個專案。

FirstOrDefault<T>(ImmutableArray<T>, Func<T,Boolean>)

傳回序列的第一個專案,如果找不到這類專案,則為符合條件或預設值。

FirstOrDefault<T>(ImmutableArray<T>)

傳回序列的第一個專案,如果序列不包含任何專案,則傳回預設值。

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

傳回序列的第一個專案,如果找不到這類專案,則為符合條件或預設值。

FirstOrDefault<TSource>(IEnumerable<TSource>)

傳回序列的第一個專案,如果序列不包含任何專案,則傳回預設值。

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, 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>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

根據索引鍵選取器函式,將序列的專案分組。 索引鍵是使用比較子來比較,而且每個群組的元素都是使用指定的函式來投影。

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

根據指定的索引鍵選取器函式將序列的專案分組,並使用指定的函式來投影每個群組的專案。

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

根據指定的索引鍵選取器函式,將序列的專案分組,並從每個群組及其索引鍵建立結果值。 使用指定的比較子來比較索引鍵。

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

根據指定的索引鍵選取器函式,將序列的專案分組,並從每個群組及其索引鍵建立結果值。

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

根據指定的索引鍵選取器函式將序列的專案分組,並使用指定的比較子比較索引鍵。

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

根據指定的索引鍵選取器函式,將序列的專案分組。

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

根據索引鍵相等將兩個序列的專案相互關聯,並將結果分組。 指定的 IEqualityComparer<T> 可用來比較索引鍵。

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

根據索引鍵的相等性,將兩個序列的專案相互關聯,並將結果分組。 默認相等比較子可用來比較索引鍵。

IndexOf<T>(IImmutableList<T>, T, IEqualityComparer<T>)

搜尋指定的物件,並傳回清單中第一個出現專案之以零起始的索引。

IndexOf<T>(IImmutableList<T>, T, Int32, Int32)

搜尋指定的物件,並傳回從指定索引延伸至最後一個專案之不可變清單中,第一個出現專案之以零起始的索引。

IndexOf<T>(IImmutableList<T>, T, Int32)

搜尋指定的物件,並傳回從指定索引延伸至最後一個專案之不可變清單中,第一個出現專案之以零起始的索引。

IndexOf<T>(IImmutableList<T>, T)

搜尋指定的物件,並傳回清單中第一個出現專案之以零起始的索引。

InDocumentOrder<T>(IEnumerable<T>)

傳回包含來源集合中所有節點的節點集合,依檔順序排序。

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

使用指定的 IEqualityComparer<T> 來比較值,產生兩個序列的集合交集。

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

使用預設相等比較子比較值來產生兩個序列的集合交集。

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

根據匹配的鍵數關聯兩個序列的元素。 指定的 IEqualityComparer<T> 可用來比較索引鍵。

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

根據匹配的鍵數關聯兩個序列的元素。 默認相等比較子可用來比較索引鍵。

Last<T>(ImmutableArray<T>, Func<T,Boolean>)

傳回符合指定條件之序列的最後一個專案。

Last<T>(ImmutableArray<T>)

回傳陣列的最後一個元素。

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

傳回符合指定條件之序列的最後一個專案。

Last<TSource>(IEnumerable<TSource>)

傳回序列的最後一個專案。

LastIndexOf<T>(IImmutableList<T>, T, IEqualityComparer<T>)

搜尋指定的物件,並傳回整個不可變清單中最後一個出現專案之以零起始的索引。

LastIndexOf<T>(IImmutableList<T>, T, Int32, Int32)

搜尋指定的物件,並傳回從第一個元素延伸至指定索引之不可變清單中最後一個出現專案的以零起始的索引。

LastIndexOf<T>(IImmutableList<T>, T, Int32)

搜尋指定的物件,並傳回從第一個元素延伸至指定索引之不可變清單中最後一個出現專案的以零起始的索引。

LastIndexOf<T>(IImmutableList<T>, T)

搜尋指定的物件,並傳回整個不可變清單中最後一個出現專案之以零起始的索引。

LastOrDefault<T>(ImmutableArray<T>, Func<T,Boolean>)

傳回序列的最後一個專案,如果找不到這類專案,則為符合條件或預設值。

LastOrDefault<T>(ImmutableArray<T>)

傳回序列的最後一個專案,如果序列不包含任何專案,則傳回預設值。

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

傳回序列的最後一個專案,如果找不到這類專案,則為符合條件或預設值。

LastOrDefault<TSource>(IEnumerable<TSource>)

傳回序列的最後一個專案,如果序列不包含任何專案,則傳回預設值。

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

傳回 Int64,代表序列中滿足條件的項目數目。

LongCount<TSource>(IEnumerable<TSource>)

傳回代表序列中項目總數的 Int64

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

在泛型序列的每個專案上叫用轉換函式,並傳回產生的最大值。

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

在序列的每個元素上叫用轉換函式,並傳回最大 Decimal 值。

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

在序列的每個元素上叫用轉換函式,並傳回最大 Double 值。

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

在序列的每個元素上叫用轉換函式,並傳回最大 Int32 值。

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

在序列的每個元素上叫用轉換函式,並傳回最大 Int64 值。

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

在序列的每個元素上叫用轉換函式,並傳回可為 Null 的最大 Decimal 值。

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

在序列的每個元素上叫用轉換函式,並傳回可為 Null 的最大 Double 值。

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

在序列的每個元素上叫用轉換函式,並傳回可為 Null 的最大 Int32 值。

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

在序列的每個元素上叫用轉換函式,並傳回可為 Null 的最大 Int64 值。

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

在序列的每個元素上叫用轉換函式,並傳回可為 Null 的最大 Single 值。

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

在序列的每個元素上叫用轉換函式,並傳回最大 Single 值。

Max<TSource>(IEnumerable<TSource>)

傳回泛型序列中的最大值。

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

在泛型序列的每個專案上叫用轉換函式,並傳回產生的最小值。

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

在序列的每個元素上叫用轉換函式,並傳回最小值 Decimal 值。

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

在序列的每個元素上叫用轉換函式,並傳回最小值 Double 值。

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

在序列的每個元素上叫用轉換函式,並傳回最小值 Int32 值。

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

在序列的每個元素上叫用轉換函式,並傳回最小值 Int64 值。

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

在序列的每個專案上叫用轉換函式,並傳回可為 null 的最小值 Decimal 值。

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

在序列的每個專案上叫用轉換函式,並傳回可為 null 的最小值 Double 值。

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

在序列的每個專案上叫用轉換函式,並傳回可為 null 的最小值 Int32 值。

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

在序列的每個專案上叫用轉換函式,並傳回可為 null 的最小值 Int64 值。

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

在序列的每個專案上叫用轉換函式,並傳回可為 null 的最小值 Single 值。

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

在序列的每個元素上叫用轉換函式,並傳回最小值 Single 值。

Min<TSource>(IEnumerable<TSource>)

傳回泛型序列中的最小值。

Nodes<T>(IEnumerable<T>)

傳回來源集合中每個檔和專案之子節點的集合。

OfType<TResult>(IEnumerable)

根據指定的型別篩選 IEnumerable 的專案。

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

使用指定的比較子,以遞增順序排序序列的專案。

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

根據索引鍵,以遞增順序排序序列的專案。

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

使用指定的比較子,以遞減順序排序序列的專案。

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

根據索引鍵,以遞減順序排序序列的專案。

Remove<T>(IEnumerable<T>)

從來源集合的父節點中移除每個節點。

Remove<T>(IImmutableList<T>, T)

從此清單中移除指定的值。

RemoveRange<T>(IImmutableList<T>, IEnumerable<T>)

從此清單中移除指定的值。

Replace<T>(IImmutableList<T>, T, T)

將清單中的第一個相等專案取代為指定的專案。

Reverse<TSource>(IEnumerable<TSource>)

反轉序列中項目的順序。

Select<T,TResult>(ImmutableArray<T>, Func<T,TResult>)

將序列的每個專案投影成新的表單。

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

藉由合併元素的索引,將序列的每個專案投影成新的表單。

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

將序列的每個專案投影成新的表單。

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

將序列的每個專案投影到 IEnumerable<T>,將產生的序列扁平化成一個序列,並在其中的每個元素上叫用結果選取器函式。

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

將序列的每個專案投影到 IEnumerable<T>,將產生的序列扁平化成一個序列,並在其中的每個元素上叫用結果選取器函式。 每個來源專案的索引會用於該專案的中繼投影形式。

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

將序列的每個專案投影到 IEnumerable<T>,將產生的序列扁平化成一個序列,並在其中的每個元素上叫用結果選取器函式。

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

將序列的每個專案投影到 IEnumerable<T>,並將產生的序列扁平化成一個序列。

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

將序列的每個專案投影至 IEnumerable<T>,並將產生的序列扁平化成一個序列。 每個來源專案的索引會以該專案的投影形式使用。

SequenceEqual<TDerived,TBase>(ImmutableArray<TBase>, IEnumerable<TDerived>, IEqualityComparer<TBase>)

根據等號比較器判斷兩個序列是否相等。

SequenceEqual<TDerived,TBase>(ImmutableArray<TBase>, ImmutableArray<TDerived>, Func<TBase,TBase,Boolean>)

根據等號比較器判斷兩個序列是否相等。

SequenceEqual<TDerived,TBase>(ImmutableArray<TBase>, ImmutableArray<TDerived>, IEqualityComparer<TBase>)

根據等號比較器判斷兩個序列是否相等。

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

使用指定的 IEqualityComparer<T>,判斷兩個序列是否相等。

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

判斷兩個序列是否相等,方法是使用其型別的默認相等比較子來比較專案。

Single<T>(ImmutableArray<T>, Func<T,Boolean>)

傳回序列中唯一符合指定條件的專案,如果有多個這類專案存在,則會擲回例外狀況。

Single<T>(ImmutableArray<T>)

傳回序列的唯一專案,如果序列中沒有一個專案,則會擲回例外狀況。

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

傳回序列中唯一符合指定條件的專案,如果有多個這類專案存在,則會擲回例外狀況。

Single<TSource>(IEnumerable<TSource>)

傳回序列的唯一專案,如果序列中沒有一個專案,則會擲回例外狀況。

SingleOrDefault<T>(ImmutableArray<T>, Func<T,Boolean>)

傳回序列中唯一符合指定條件的專案,如果沒有這類專案,則傳回預設值;如果一個以上的專案符合條件,這個方法會擲回例外狀況。

SingleOrDefault<T>(ImmutableArray<T>)

回傳陣列中唯一的元素,或若序列為空則為預設值;此方法若序列中有多個元素,會拋出例外。

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

傳回序列中唯一符合指定條件的專案,如果沒有這類專案,則傳回預設值;如果一個以上的專案符合條件,這個方法會擲回例外狀況。

SingleOrDefault<TSource>(IEnumerable<TSource>)

傳回序列的唯一專案;如果序列是空的,則傳回預設值;如果序列中有多個項目,這個方法會擲回例外狀況。

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

略過序列中指定數目的專案,然後傳回其餘專案。

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

回傳一個新的可枚舉集合,包含 的 source 元素,且刪除原始集合的最後元素 count

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

只要指定的條件為 true,就會略過序列中的項目,然後傳回其餘元素。

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

只要指定的條件為 true,就會略過序列中的項目,然後傳回其餘元素。 元素的索引用於述詞函式的邏輯中。

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

計算 Decimal 值序列的總和,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算 Double 值序列的總和,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算 Int32 值序列的總和,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算 Int64 值序列的總和,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Decimal 值的序列總和。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Double 值的序列總和。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Int32 值的序列總和。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Int64 值的序列總和。

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

計算在輸入序列的每個元素上叫用轉換函式所取得之可為 Null Single 值的序列總和。

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

計算 Single 值序列的總和,這些值是在輸入序列的每個元素上叫用轉換函式所取得。

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

從序列開頭傳回指定的連續項目數目。

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

回傳一個新的可枚舉集合,包含 的count最後元素source

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

只要指定的條件為 true,就會從序列傳回專案。

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

只要指定的條件為 true,就會從序列傳回專案。 元素的索引用於述詞函式的邏輯中。

ToArray<T>(ImmutableArray<T>)

將此陣列的內容複製到可變陣列。

ToArray<TSource>(IEnumerable<TSource>)

IEnumerable<T>建立陣列。

ToDictionary<TKey,T>(ImmutableArray<T>, Func<T,TKey>, IEqualityComparer<TKey>)

根據這個陣列的內容建立字典。

ToDictionary<TKey,T>(ImmutableArray<T>, Func<T,TKey>)

根據這個陣列的內容建立字典。

ToDictionary<TKey,TElement,T>(ImmutableArray<T>, Func<T,TKey>, Func<T,TElement>, IEqualityComparer<TKey>)

根據這個陣列的內容建立字典。

ToDictionary<TKey,TElement,T>(ImmutableArray<T>, Func<T,TKey>, Func<T,TElement>)

根據這個陣列的內容建立字典。

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

根據指定的索引鍵選取器函式、比較子和元素選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器和項目選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式和索引鍵比較子,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式,從 Dictionary<TKey,TValue> 建立 IEnumerable<T>

ToImmutableArray<TSource>(IEnumerable<TSource>)

從指定的集合建立不可變的陣列。

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<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>)

列舉和轉換序列,併產生其內容的不可變字典。

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

根據序列的一些轉換,建構不可變的字典。

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

從現有的專案集合建構不可變的字典,將轉換函式套用至來源索引鍵。

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

列舉序列、產生其內容的不可變哈希集,並使用集合類型的指定相等比較子。

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

列舉序列,併產生其內容的不可變哈希集。

ToImmutableList<TSource>(IEnumerable<TSource>)

列舉序列,併產生其內容的不可變清單。

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<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>)

列舉和轉換序列,併產生其內容的不可變排序字典。

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

列舉序列、產生其內容的不可變排序集,並使用指定的比較子。

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

列舉序列,併產生其內容的不可變排序集。

ToList<TSource>(IEnumerable<TSource>)

List<T>建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式、比較子和元素選取器函式,從 Lookup<TKey,TElement> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器和項目選取器函式,從 Lookup<TKey,TElement> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式和索引鍵比較子,從 Lookup<TKey,TElement> 建立 IEnumerable<T>

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

根據指定的索引鍵選取器函式,從 Lookup<TKey,TElement> 建立 IEnumerable<T>

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

使用指定的 IEqualityComparer<T>產生兩個序列的集合聯集。

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

使用預設相等比較子產生兩個序列的集合聯集。

Where<T>(ImmutableArray<T>, Func<T,Boolean>)

根據述詞篩選值序列。

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

將指定的函式套用至兩個序列的對應專案,產生結果序列。

適用於

執行緒安全性

此類型是安全線程。