Classificar DataTable em C#
-
Classifique DataTable com a propriedade
DataView.Sort
emC#
-
Classifique DataTable com a propriedade
DataTable.DefaultView
emC#
Este tutorial irá apresentar os métodos para classificar uma tabela de dados em C#.
Classifique DataTable com a propriedade DataView.Sort
em C#
A propriedade DataView.Sort
é usada para obter ou definir a coluna de classificação de uma tabela de dados em C#. Podemos definir a coluna de classificação de nossa tabela de dados especificando o nome da coluna como DataView.Sort = "Col_name"
. Por padrão, este método classifica a tabela de dados em ordem crescente. Podemos especificar desc
após o nome da coluna para classificar a tabela de dados em ordem decrescente. Podemos então converter este DataView
em DataTable
com a função DataView.ToTable()
em C#. O exemplo de código a seguir nos mostra como podemos classificar uma tabela de dados com a propriedade DataView.Sort
em 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]);
}
}
}
}
Resultado:
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
No código acima, primeiro criamos uma tabela de dados table1
e adicionamos duas colunas a ela Price
e Rating
. Em seguida, classificamos a tabela pela ordem decrescente de Preço
e exibimos os novos valores. Criamos uma nova instância da classe DataView
e a classificamos com a propriedade DataView.Sort
. Em seguida, convertemos o DataView
classificado em DataTable
com a função DataView.ToTable()
em C#. No final, exibimos os dados na tabela classificada.
Classifique DataTable com a propriedade DataTable.DefaultView
em C#
A propriedade DataTable.DefaultView
é usada para obter uma visualização personalizada de uma tabela de dados em C#. Podemos classificar nossa tabela de dados especificando a coluna de classificação na propriedade DataTable.DefaultView.Sort
. Por padrão, este método classifica a tabela de dados em ordem crescente. Podemos especificar desc
após o nome da coluna para classificar a tabela de dados em ordem decrescente. Podemos então converter essa exibição classificada em uma tabela de dados com a função DefaultView.ToTable()
em C#. O exemplo de código a seguir nos mostra como podemos classificar uma tabela de dados com a propriedade DataTable.DefaultView
em 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]);
}
}
}
}
Resultado:
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
No código acima, primeiro criamos uma tabela de dados table1
e adicionamos duas colunas, Price
e Rating
. Em seguida, classificamos a tabela table1
pela ordem decrescente de Price
e exibimos os novos valores. Criamos uma visualização classificada de nossa tabela table1
com a propriedade table1.DefaultView.Sort
. Em seguida, convertemos essa exibição classificada em uma tabela com a função table1.DefaultView.ToTable(true)
em C#. No final, exibimos os dados na tabela classificada.
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