Compartir a través de


Operadores de secuencia (LINQ to SQL)

Generalmente hablando, LINQ to SQL no admite los operadores de secuencia que tienen una o más de las características siguientes:

  • Aceptan una expresión lambda con un parámetro de índice.

  • Se basan en las propiedades de filas secuenciales, como TakeWhile.

  • Se basan en una implementación de CLR arbitraria, como IComparer<T>.

Ejemplos de incompatibilidad

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

Diferencias respecto a .NET

Todos los operadores de secuencia admitidos funcionan como es de esperar en Common Language Runtime (CLR), salvo Average. Average devuelve un valor del mismo tipo que el tipo para el que se calcula el promedio, mientras que en CLR Average siempre devuelve Double o Decimal. Si el argumento de origen se convierte explícitamente en double o decimal o el selector se convierte en double o decimal, el código SQL resultante también tendrá este tipo de conversión y el resultado será el esperado.

Vea también

Otros recursos

Tipos de datos y funciones (LINQ to SQL)