Ordenar DataTable en C#
-
Ordenar DataTable con la propiedad
DataView.Sort
enC#
-
Ordenar DataTable con la propiedad
DataTable.DefaultView
enC#
Este tutorial presentará los métodos para ordenar una tabla de datos en C#.
Ordenar DataTable con la propiedad DataView.Sort
en C#
La propiedad DataView.Sort
se utiliza para obtener o establecer la columna de clasificación de una tabla de datos en C#. Podemos establecer la columna de clasificación de nuestra tabla de datos especificando el nombre de la columna como DataView.Sort = "Col_name"
. De forma predeterminada, este método ordena la tabla de datos en orden ascendente. Podemos especificar desc
después del nombre de la columna para ordenar la tabla de datos en orden descendente. Entonces podemos convertir este DataView
en un DataTable
con la función DataView.ToTable()
en C#. El siguiente ejemplo de código nos muestra cómo podemos ordenar una tabla de datos con la propiedad DataView.Sort
en 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]);
}
}
}
}
Producción :
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
En el código anterior, primero creamos una tabla de datos table1
y le agregamos dos columnas Price
y Rating
. Luego ordenamos la tabla por orden descendente de Precio
y mostramos los nuevos valores. Creamos una nueva instancia de la clase DataView
y la ordenamos con la propiedad DataView.Sort
. Luego convertimos el DataView
ordenado en un DataTable
con la función DataView.ToTable()
en C#. Al final, mostramos los datos en la tabla ordenada.
Ordenar DataTable con la propiedad DataTable.DefaultView
en C#
La propiedad DataTable.DefaultView
se utiliza para obtener una vista personalizada de una tabla de datos en C#. Podemos ordenar nuestra tabla de datos especificando la columna de clasificación en la propiedad DataTable.DefaultView.Sort
. De forma predeterminada, este método ordena la tabla de datos en orden ascendente. Podemos especificar desc
después del nombre de la columna para ordenar la tabla de datos en orden descendente. Luego podemos convertir esa vista ordenada en una tabla de datos con la función DefaultView.ToTable()
en C#. El siguiente ejemplo de código nos muestra cómo podemos ordenar una tabla de datos con la propiedad DataTable.DefaultView
en 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]);
}
}
}
}
Producción :
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
En el código anterior, primero creamos una tabla de datos table1
y agregamos dos columnas, Price
y Rating
. Luego ordenamos la tabla table1
por el orden descendente de Price
y mostramos los nuevos valores. Creamos una vista ordenada de nuestra tabla table1
con la propiedad table1.DefaultView.Sort
. Luego convertimos esa vista ordenada en una tabla con la función table1.DefaultView.ToTable(true)
en C#. Al final, mostramos los datos en la tabla ordenada.
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