Ordenación de datos (Visual Basic)
Una operación de ordenación ordena los elementos de una secuencia según uno o varios atributos. El primer criterio de ordenación realiza una ordenación primaria de los elementos. Al especificar un segundo criterio de ordenación, se pueden ordenar los elementos dentro de cada grupo de ordenación primaria.
En la ilustración siguiente se muestran los resultados de una operación de ordenación alfabética en una secuencia de caracteres.
Los métodos de operador de consulta estándar que ordenan datos de datos se enumeran en la sección siguiente.
Métodos
Nombre del método | Descripción | Sintaxis de expresiones de consulta de Visual Basic | Más información |
---|---|---|---|
OrderBy | Ordena valores en orden ascendente. | Order By |
Enumerable.OrderBy Queryable.OrderBy |
OrderByDescending | Ordena 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 |
Reverse | Invierte el orden de los elementos de una colección. | No es aplicable. | Enumerable.Reverse Queryable.Reverse |
Ejemplos de sintaxis de expresiones de consulta
Ejemplos de ordenación principal
Orden ascendente principal
En el siguiente ejemplo se muestra cómo usar la cláusula Order By
en una consulta LINQ para ordenar las cadenas de una matriz por la longitud de la 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
Orden descendente principal
En el siguiente ejemplo se muestra cómo usar la cláusula Order By Descending
en una consulta LINQ para ordenar las cadenas por su letra inicial, 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 siguiente ejemplo se muestra cómo usar la cláusula Order By
en una consulta LINQ para realizar una ordenación principal y secundaria de las cadenas de una matriz. Las cadenas se ordenan primero por su longitud y, después, por la letra inicial de la cadena, 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 siguiente ejemplo se muestra cómo usar la cláusula Order By Descending
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 primero por su longitud y, después, por la letra inicial 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