Compartir a través de


Ordenar datos (Visual Basic)

Una operación de ordenación ordena los elementos de una secuencia en función de uno o varios atributos. El primer criterio de ordenación realiza una ordenación principal en los elementos. Al especificar un segundo criterio de ordenación, puede ordenar los elementos dentro de cada grupo de ordenación principal.

En la ilustración siguiente se muestran los resultados de una operación de ordenación alfabética en una secuencia de caracteres.

Gráfico que muestra una operación de ordenación alfabética.

Los métodos del operador de consulta estándar que ordenan los datos se muestran en la sección siguiente.

Métodos

Nombre del método Descripción Sintaxis de expresión de consulta de Visual Basic Más información
OrderBy Ordena los valores en orden ascendente. Order By Enumerable.OrderBy

Queryable.OrderBy
OrdenarPorDescendente Ordena los valores en orden descendente. Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenBy Realiza una ordenación secundaria en orden ascendente. Order By …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescending Realiza una ordenación secundaria en orden descendente. Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Invertir Invierte el orden de los elementos de una colección. No aplicable. Enumerable.Reverse

Queryable.Reverse

Ejemplos de sintaxis de expresiones de consulta

Ejemplos de ordenación principal

Orden ascendente principal

En el ejemplo siguiente se muestra cómo usar la Order By cláusula en una consulta LINQ para ordenar las cadenas de una matriz por longitud de cadena, en orden ascendente.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length
                Select word

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

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

' This code produces the following output:

' the
' fox
' quick
' brown
' jumps

Ordenación descendente principal

En el ejemplo siguiente se muestra cómo usar la Order By Descending cláusula en una consulta LINQ para ordenar las cadenas por su primera letra, en orden descendente.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Substring(0, 1) Descending
                Select word

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

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

' This code produces the following output:

' the
' quick
' jumps
' fox
' brown

Ejemplos de ordenación secundaria

Orden ascendente secundario

En el ejemplo siguiente se muestra cómo usar la Order By cláusula en una consulta LINQ para realizar un tipo principal y secundario de las cadenas de una matriz. Las cadenas se ordenan principalmente por longitud y secundariamente por la primera letra de la cadena, ambas en orden ascendente.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length, word.Substring(0, 1)
                Select word

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

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

' This code produces the following output:

' fox
' the
' brown
' jumps
' quick

Orden descendente secundario

En el ejemplo siguiente se muestra cómo usar la Order By Descending cláusula en una consulta LINQ para realizar una ordenación principal, en orden ascendente y una ordenación secundaria, en orden descendente. Las cadenas se ordenan principalmente por longitud y secundariamente por la primera letra de la cadena.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length, word.Substring(0, 1) Descending
                Select word

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

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

' This code produces the following output:

' fox
' the
' quick
' jumps
' brown

Consulte también