Realizar particiones de datos

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.

La ilustración siguiente muestra 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.

Operaciones de partición en LINQ

Los métodos de operador de consulta estándar que realizan particiones de las secuencias se enumeran en la sección siguiente.

Operadores

Nombre de operador

Descripción

Sintaxis de las expresiones de consulta de C#

Sintaxis de las expresiones de consulta de Visual Basic

Más información

Skip

Omite los elementos hasta una determinada posición de una secuencia.

No es aplicable

Skip

Enumerable.Skip<TSource>

Queryable.Skip<TSource>

SkipWhile

Omite los elementos según una función de predicado hasta que un elemento no satisface la condición.

No es aplicable

Skip While

Enumerable.SkipWhile

Queryable.SkipWhile

Take

Admite los elementos hasta una determinada posición de una secuencia.

No es aplicable

Take

Enumerable.Take<TSource>

Queryable.Take<TSource>

TakeWhile

Admite los elementos según una función de predicado hasta que un elemento no satisface la condición.

No es aplicable

Take While

Enumerable.TakeWhile

Queryable.TakeWhile

Ejemplos de sintaxis de expresiones de consulta

Bb546164.collapse_all(es-es,VS.110).gifSkip

En el ejemplo de código siguiente se utiliza la cláusula Skip en Visual Basic para omitir las cuatro primeras cadenas de una matriz de cadenas antes de devolver las cadenas restantes de la matriz.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Skip 4

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' keeps
        ' the
        ' doctor
        ' away

Bb546164.collapse_all(es-es,VS.110).gifSkipWhile

En el ejemplo de código siguiente se utiliza la cláusula Skip While en Visual Basic para omitir las cadenas de una matriz mientras la primera letra de la cadena sea una "a".Se devuelven las cadenas restantes de la matriz.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Skip While word.Substring(0, 1) = "a"

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' day
        ' keeps
        ' the
        ' doctor
        ' away

Bb546164.collapse_all(es-es,VS.110).gifTake

En el ejemplo de código siguiente se utiliza la cláusula Take en Visual Basic para devolver las dos primeras cadenas de una matriz de cadenas.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Take 2

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' an
        ' apple

Bb546164.collapse_all(es-es,VS.110).gifTakeWhile

En el ejemplo de código siguiente se utiliza la cláusula Take While en Visual Basic para devolver las cadenas de una matriz mientras la longitud de la cadena sea de cinco o menor que cinco.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Take While word.Length < 6

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' an
        ' apple
        ' a
        ' day
        ' keeps
        ' the

Vea también

Referencia

Skip (Cláusula, Visual Basic)

Skip While (Cláusula, Visual Basic)

Take (Cláusula, Visual Basic)

Take While (Cláusula, Visual Basic)

System.Linq

Conceptos

Información general sobre operadores de consulta estándar