Partición en LINQ es la operación de dividir una secuencia de entrada en dos secciones, sin reorganizar los elementos, y devolver después una de las secciones.
En la siguiente ilustración se muestran los resultados de tres operaciones de partición diferentes en una secuencia de caracteres. La primera operación devuelve los tres primeros elementos de la secuencia. La segunda operación omite los tres primeros elementos y devuelve los restantes. La tercera operación omite los dos primeros elementos de la secuencia y devuelve los tres siguientes.
Los métodos de operador de consulta estándar que realizan particiones de las secuencias se enumeran en la sección siguiente.
Operadores
Nombres de método
Descripción
Sintaxis de la expresión de consulta de C#
Información adicional
Skip
Omite los elementos hasta una determinada posición de una secuencia.
Use el método Take para tomar solo los primeros elementos de una secuencia:
C#
foreach (int number in Enumerable.Range(0, 8).Take(3))
{
Console.WriteLine(number);
}
// This code produces the following output:// 0// 1// 2
Use el método Skip para omitir los primeros elementos de una secuencia y usar los elementos restantes:
C#
foreach (int number in Enumerable.Range(0, 8).Skip(3))
{
Console.WriteLine(number);
}
// This code produces the following output:// 3// 4// 5// 6// 7
Los métodos TakeWhile y SkipWhile también toman y omiten elementos en una secuencia. Sin embargo, en lugar de un número establecido de elementos, estos métodos omiten o toman elementos en función de una condición. TakeWhile toma los elementos de una secuencia hasta que un elemento no coincide con la condición.
C#
foreach (int number in Enumerable.Range(0, 8).TakeWhile(n => n < 5))
{
Console.WriteLine(number);
}
// This code produces the following output:// 0// 1// 2// 3// 4
SkipWhile omite los primeros elementos, siempre y cuando la condición sea verdadera. Se devuelve el primer elemento que no coincide con la condición y todos los elementos posteriores.
C#
foreach (int number in Enumerable.Range(0, 8).SkipWhile(n => n < 5))
{
Console.WriteLine(number);
}
// This code produces the following output:// 5// 6// 7
El operador Chunk se usa para dividir los elementos de una secuencia en función de un valor size determinado.
C#
int chunkNumber = 1;
foreach (int[] chunk in Enumerable.Range(0, 8).Chunk(3))
{
Console.WriteLine($"Chunk {chunkNumber++}:");
foreach (int item in chunk)
{
Console.WriteLine($" {item}");
}
Console.WriteLine();
}
// This code produces the following output:// Chunk 1:// 0// 1// 2////Chunk 2:// 3// 4// 5////Chunk 3:// 6// 7
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.