Classificar DataTable em C#
-
Classifique DataTable com a propriedade
DataView.SortemC# -
Classifique DataTable com a propriedade
DataTable.DefaultViewemC#
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