DatenTabel sortieren in C#
-
Sortieren von DataTable mit der Eigenschaft
DataView.Sort
inC#
-
Sortieren von DataTable mit der Eigenschaft
DataTable.DefaultView
inC#
In diesem Tutorial werden die Methoden zum Sortieren einer Datentabelle in C# vorgestellt.
Sortieren von DataTable mit der Eigenschaft DataView.Sort
in C#
Mit der Eigenschaft DataView.Sort
wird die Sortierspalte einer Datentabelle in C# abgerufen oder festgelegt. Wir können die Sortierspalte unserer Datentabelle festlegen, indem wir den Spaltennamen wie DataView.Sort = "Col_name"
angeben. Standardmäßig sortiert diese Methode die Datentabelle in aufsteigender Reihenfolge. Wir können nach dem Spaltennamen desc
angeben, um die Datentabelle in absteigender Reihenfolge zu sortieren. Diese DataView
können wir dann mit der Funktion DataView.ToTable()
in C# in eine DataTable
konvertieren. Das folgende Codebeispiel zeigt uns, wie wir eine Datentabelle mit der Eigenschaft DataView.Sort
in C# sortieren können.
using System;
using System.Data;
namespace datatable_sort {
class Program {
static void Main(string[] args) {
DataTable table1 = new DataTable();
DataColumn column1 = new DataColumn();
DataColumn column2 = new DataColumn();
column1.DataType = System.Type.GetType("System.Decimal");
column2.DataType = System.Type.GetType("System.Decimal");
column1.ColumnName = "Price";
column2.ColumnName = "Rating";
table1.Columns.Add(column1);
table1.Columns.Add(column2);
DataRow row;
for (int i = 0; i < 3; i++) {
row = table1.NewRow();
row["Price"] = i + 1;
row["Rating"] = i;
table1.Rows.Add(row);
}
// Displaying Original Values
Console.WriteLine("UnSorted Values");
foreach (DataRow r in table1.Rows) {
Console.WriteLine("Price = {0}, Rating = {1}", r[0], r[1]);
}
// Sorting the Table
DataView dv = table1.DefaultView;
dv.Sort = "Price desc";
DataTable sortedtable1 = dv.ToTable();
// Displaying Sorted Values
Console.WriteLine("Sorted Values by Descending order of Price");
foreach (DataRow r in sortedtable1.Rows) {
Console.WriteLine("Price = {0}, Rating = {1}", r[0], r[1]);
}
}
}
}
Ausgabe:
UnSorted Values
Price = 1, Rating = 0
Price = 2, Rating = 1
Price = 3, Rating = 2
Sorted Values by Descending order of Price
Price = 3, Rating = 2
Price = 2, Rating = 1
Price = 1, Rating = 0
Im obigen Code haben wir zuerst eine datierbare table1
erstellt und ihr zwei Spalten Price
und Rating
hinzugefügt. Dann haben wir die Tabelle in absteigender Reihenfolge von Preis
sortiert und die neuen Werte angezeigt. Wir haben eine neue Instanz der Klasse DataView
erstellt und mit der Eigenschaft DataView.Sort
sortiert. Anschließend haben wir die sortierte DataView
mit der Funktion DataView.ToTable()
in C# in eine DataTable
konvertiert. Am Ende haben wir die Daten in der sortierten Tabelle angezeigt.
Sortieren von DataTable mit der Eigenschaft DataTable.DefaultView
in C#
Die Eigenschaft DataTable.DefaultView
wird verwendet, um eine benutzerdefinierte Ansicht einer Datentabelle in C# abzurufen. Wir können unsere Datentabelle sortieren, indem wir die Sortierspalte in der Eigenschaft DataTable.DefaultView.Sort
angeben. Standardmäßig sortiert diese Methode die Datentabelle in aufsteigender Reihenfolge. Wir können nach dem Spaltennamen desc
angeben, um die Datentabelle in absteigender Reihenfolge zu sortieren. Wir können diese sortierte Ansicht dann mit der Funktion DefaultView.ToTable()
in C# in eine Datentabelle konvertieren. Das folgende Codebeispiel zeigt uns, wie wir eine Datentabelle mit der Eigenschaft DataTable.DefaultView
in C# sortieren können.
using System;
using System.Data;
namespace datatable_sort {
class Program {
static void Main(string[] args) {
DataTable table1 = new DataTable();
DataColumn column1 = new DataColumn();
DataColumn column2 = new DataColumn();
column1.DataType = System.Type.GetType("System.Decimal");
column2.DataType = System.Type.GetType("System.Decimal");
column1.ColumnName = "Price";
column2.ColumnName = "Rating";
table1.Columns.Add(column1);
table1.Columns.Add(column2);
DataRow row;
for (int i = 0; i < 3; i++) {
row = table1.NewRow();
row["Price"] = i + 1;
row["Rating"] = i;
table1.Rows.Add(row);
}
// Displaying Original Values
Console.WriteLine("UnSorted Values");
foreach (DataRow r in table1.Rows) {
Console.WriteLine("Price = {0}, Rating = {1}", r[0], r[1]);
}
// Sorting the Table
table1.DefaultView.Sort = "Price desc";
table1 = table1.DefaultView.ToTable(true);
// Displaying Sorted Values
Console.WriteLine("Sorted Values by Descending order of Price");
foreach (DataRow r in table1.Rows) {
Console.WriteLine("Price = {0}, Rating = {1}", r[0], r[1]);
}
}
}
}
Ausgabe:
UnSorted Values
Price = 1, Rating = 0
Price = 2, Rating = 1
Price = 3, Rating = 2
Sorted Values by Descending order of Price
Price = 3, Rating = 2
Price = 2, Rating = 1
Price = 1, Rating = 0
Im obigen Code haben wir zuerst eine datierbare table1
erstellt und zwei Spalten hinzugefügt: Price
und Rating
. Dann haben wir die Tabelle table1
in absteigender Reihenfolge von Price
sortiert und die neuen Werte angezeigt. Wir haben eine sortierte Ansicht unserer Tabelle table1
mit der Eigenschaft table1.DefaultView.Sort
erstellt. Wir haben diese sortierte Ansicht dann in eine Tabelle mit der Funktion table1.DefaultView.ToTable(true)
in C# konvertiert. Am Ende haben wir die Daten in der sortierten Tabelle angezeigt.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn