共用方式為


序列運算子 (LINQ to SQL)

更新: November 2007

一般而言,LINQ to SQL 不支援具有下列一項或多項特質的序列運算子:

  • 採用具有索引參數的 Lambda。

  • 依賴循序資料列的屬性,例如 TakeWhile

  • 依賴任意 CLR 實作,例如 IComparer<T>

不支援的運算子範例

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

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

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

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

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

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

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

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

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

Enumerable.Reverse<TSource>(IEnumerable<TSource>)

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

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

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

Enumerable.Range(Int32, Int32)

Enumerable.Repeat<TResult>(TResult, Int32)

Enumerable.Empty<TResult>()

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

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

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

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

Enumerable.SequenceEqual

與 .NET 的差異

除了 Average 以外,所有支援的序列運算子在 Common Language Runtime (CLR) 中都會如預期運作。Average 會傳回與進行平均之型別相同型別的值,然而在 CLR 中 Average 則一律會傳回 DoubleDecimal。如果來源引數已明確地轉型為 double / decimal 或選取器轉型為 double / decimal,則結果產生的 SQL 也會有此種轉換,而且結果會如預期。

請參閱

其他資源

資料型別和函式 (LINQ to SQL)