Megosztás a következőn keresztül:


Szekvencia-operátorok

Általánosságban elmondható, hogy az SQL-hez való LINQ nem támogatja azokat a szekvencia-operátorokat, amelyek az alábbi tulajdonságok valamelyikével rendelkeznek:

  • Vegyünk egy lambdát indexparaméterrel.

  • Függenek a szekvenciális sorok tulajdonságaitól, például TakeWhilea .

  • Támaszkodhat egy tetszőleges CLR-implementációra, például IComparer<T>.

Példák nem támogatottakra
Enumerable.Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
Enumerable.Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,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

Különbségek a .NET-től

Az összes támogatott szekvencia-operátor a várt módon működik a közös nyelvi futtatókörnyezetben (CLR), kivéve a Average. Average az átlagolt típussal azonos típusú értéket ad vissza, míg a CLR-ben Average mindig egy Double vagy egy Decimalértéket ad vissza. Ha a forrásargumentum explicit módon dupla/decimális értékre van adva, vagy a választó dupla/decimális értékre van adva, az eredményül kapott SQL is rendelkezik ilyen átalakítással, és az eredmény a várt módon lesz.

Lásd még