Ordinare DataTable in C#
-
Ordina DataTable con la proprietà
DataView.Sort
inC#
-
Ordina DataTable con la proprietà
DataTable.DefaultView
inC#
Questo tutorial introdurrà i metodi per ordinare un datatable in C#.
Ordina DataTable con la proprietà DataView.Sort
in C#
La proprietà DataView.Sort
viene utilizzata per ottenere o impostare la colonna di ordinamento di un datatable in C#. Possiamo impostare la colonna di ordinamento del nostro datatable specificando il nome della colonna come DataView.Sort = "Col_name"
. Per impostazione predefinita, questo metodo ordina i dati disponibili in ordine crescente. Possiamo specificare desc
dopo il nome della colonna per ordinare i dati in ordine decrescente. Possiamo quindi convertire questo DataView
in un DataTable
con la funzione DataView.ToTable()
in C#. Il seguente esempio di codice ci mostra come ordinare un datatable con la proprietà DataView.Sort
in C#.
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]);
}
}
}
}
Produzione:
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
Nel codice sopra, abbiamo prima creato una table1
databile e aggiunto due colonne Price
e Rating
. Quindi abbiamo ordinato la tabella in ordine decrescente di Prezzo
e visualizzato i nuovi valori. Abbiamo creato una nuova istanza della classe DataView
e l’abbiamo ordinata con la proprietà DataView.Sort
. Abbiamo quindi convertito il DataView
ordinato in un DataTable
con la funzione DataView.ToTable()
in C#. Alla fine, abbiamo visualizzato i dati nella tabella ordinata.
Ordina DataTable con la proprietà DataTable.DefaultView
in C#
La proprietà DataTable.DefaultView
viene utilizzata per ottenere una visualizzazione personalizzata di un datatable in C#. Possiamo ordinare il nostro datatable specificando la colonna di ordinamento nella proprietà DataTable.DefaultView.Sort
. Per impostazione predefinita, questo metodo ordina i dati disponibili in ordine crescente. Possiamo specificare desc
dopo il nome della colonna per ordinare i dati in ordine decrescente. Possiamo quindi convertire quella vista ordinata in una datatable con la funzione DefaultView.ToTable()
in C#. Il seguente esempio di codice ci mostra come ordinare un datatable con la proprietà DataTable.DefaultView
in C#.
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]);
}
}
}
}
Produzione:
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
Nel codice sopra, abbiamo prima creato una table1
databile e aggiunto due colonne, Price
e Rating
. Quindi abbiamo ordinato la tabella table1
in ordine decrescente di Price
e abbiamo visualizzato i nuovi valori. Abbiamo creato una vista ordinata della nostra tabella table1
con la proprietà table1.DefaultView.Sort
. Abbiamo quindi convertito quella vista ordinata in una tabella con la funzione table1.DefaultView.ToTable(true)
in C#. Alla fine, abbiamo visualizzato i dati nella tabella ordinata.
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