Sortowanie danych
Operację sortowania zamówień elementy sekwencję, na podstawie jednego lub więcej atrybutów.Pierwszym kryterium sortowania wykonuje podstawowego sortowania elementów.Określając drugiego kryterium sortowania, można sortować elementy w ramach każdej grupy podstawowej sortowania.
Następująca ilustracja pokazuje wyniki operacji sortowania alfabetycznego, na sekwencji znaków.
Metody operator standardowej kwerendy, które sortować dane są wymienione w poniższej sekcji.
Metody
Nazwa metody |
Opis |
Kwerendy języka C# składni wyrażenia |
Visual BasicSkładni wyrażenia kwerendy |
Więcej informacji |
---|---|---|---|---|
OrderBy |
Sortuje wartości w kolejności rosnącej. |
orderby |
Order By |
|
OrderByDescending |
Sortuje wartości w kolejności malejącej. |
orderby … descending |
Order By … Descending |
|
ThenBy |
Wykonuje drugie sortowanie w kolejności rosnącej. |
orderby …, … |
Order By …, … |
|
ThenByDescending |
Wykonuje drugie sortowanie w kolejności malejącej. |
orderby …, … descending |
Order By …, … Descending |
|
Odwróć |
Odwraca kolejność elementów w kolekcji. |
Nie dotyczy. |
Nie dotyczy. |
Przykłady składni wyrażenia kwerendy
Przykłady sortowania podstawowego
Sortowanie w kolejności rosnącej podstawowy
Poniższy przykład demonstruje, jak używać orderby (Order By w języku Visual Basic) klauzula kwerendy LINQ do sortowania ciągi w tablicy przez długość łańcucha, w kolejności rosnącej.
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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
brown
jumps
*/
Podstawowy malejący porządek sortowania
Kolejnym przykładzie przedstawiono sposób użycia orderbydescending (Order By Descending w języku Visual Basic) klauzula kwerendy LINQ do sortowania ciągi przez ich pierwszą literę w kolejności malejącej.
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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
quick
jumps
fox
brown
*/
Pomocnicze przykłady sortowania
Sortowanie w kolejności rosnącej pomocniczy
Poniższy przykład demonstruje, jak używać orderby (Order By w języku Visual Basic) klauzula kwerendy LINQ do wykonania sortowania podstawowego i pomocniczego, ciągów w tablicy.Ciągi są sortowane, przede wszystkim przez długość i rozpowszechnienia przez pierwszą literę ciągu, zarówno w kolejności rosnącej.
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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length, word.Substring(0, 1)
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
fox
the
brown
jumps
quick
*/
Pomocniczy malejący porządek sortowania
Kolejnym przykładzie przedstawiono sposób użycia orderbydescending (Order By Descending w języku Visual Basic) klauzula kwerendy LINQ do wykonania sortowania podstawowego, w rosnącej kolejności i wtórnych sortowania, w kolejności malejącej.Ciągi są sortowane, przede wszystkim przez długość i rozpowszechnienia przez pierwszą literę ciągu.
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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length, word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
jumps
brown
*/
Zobacz też
Zadania
Porady: kolejność wyników klauzuli join (Przewodnik programowania w języku C#)
Porady: sortowanie wyników zapytania za pomocą LINQ (Visual Basic)
Porady: sortowanie lub filtrowanie danych tekstowych według dowolnego słowa lub pola (LINQ)
Informacje
Klauzula orderby (odwołanie w C#)
Order By — Klauzula (Visual Basic)