DatenTabel sortieren in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Sortieren von DataTable mit der Eigenschaft DataView.Sort in C#
  2. Sortieren von DataTable mit der Eigenschaft DataTable.DefaultView in C#
DatenTabel sortieren in C#

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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Verwandter Artikel - Csharp DataTable