Wir haben zwei Spalten in a DataTable
, so:
COL1 COL2
Abc 5
Def 8
Ghi 3
Wir versuchen , diese zu sortieren , datatable
basierend auf COL2
in absteigender Reihenfolge.
COL1 COL2
ghi 8
abc 4
def 3
jkl 1
Wir haben das versucht:
ft.DefaultView.Sort = "COL2 desc";
ft = ft.DefaultView.ToTable(true);
aber ohne a DataView
wollen wir das DataTable
selbst sortieren , nicht das DataView
.
Das wird dir helfen...
quelle
Seine einfache Verwendung. Auswahlfunktion.
Und es ist geschafft ...... Happy Coding
quelle
Select("", "CompanyName ASC")
.Vielleicht kann folgendes helfen:
Hier können Sie auch andere Lambda-Ausdrucksabfragen verwenden.
quelle
Haben Sie versucht, die
Select(filterExpression, sortOrder)
Methode in DataTable zu verwenden? Siehe hier für ein Beispiel. Beachten Sie, dass diese Methode die Datentabelle nicht an Ort und Stelle sortiert, wenn Sie danach suchen, sondern ein sortiertes Array von Zeilen ohne Verwendung einer Datenansicht zurückgibt.quelle
Oder wenn Sie a verwenden können
DataGridView
, können Sie einfach anrufenSort(column, direction)
:Welches würde Ihnen das gewünschte Ergebnis geben:
quelle
quelle
Es gibt zwei Möglichkeiten zum Sortieren von Daten
1) nur Daten sortieren und in Raster füllen:
2) Sortieren Sie die Standardansicht, die der Sortierung mit der Rasterspaltenüberschrift ähnelt:
quelle
DataRow[] rows = dt.Rows.Cast<DataRow>().OrderBy(row => row.Field<string>("FIELD_NAME"), MyCustomComparer.Instance).ToArray();
Es stellt sich heraus, dass es einen Sonderfall gibt, in dem dies erreicht werden kann. Der Trick besteht darin, beim Erstellen der DataTable alle Zeilen in einer Liste zu sammeln, zu sortieren und dann hinzuzufügen. Dieser Fall ist gerade hier aufgetaucht.
quelle
// Hoffe das wird dir helfen ..
quelle
TL; DR
Verwenden Sie
tableObject.Select(queryExpression, sortOrderExpression)
diese Option, um Daten sortiert auszuwählenVollständiges Beispiel
Vollständiges Arbeitsbeispiel - kann in einer Konsolenanwendung getestet werden :
Ausgabe
quelle
Versuche dies:
quelle
DataTable sortedDT = new DataTable()
. 2) Sie müssen verwendenImportRow
(Sie können keine Zeile aus einer anderen Tabelle hinzufügen)