DataTable排序时如何区分大小写?

How to differentiate by case when sorting a DataTable?

我注意到当使用数据视图(在 C# 中)按特定列对数据表中的行进行排序时,排序方法似乎不区分大写和小写字符串。有没有一种方法可以按列对数据表进行排序,使字符串根据大小写被视为不同?

        DataTable Dt18 = new DataTable();
        Dt18.Columns.Add("Dosage", typeof(int));
        Dt18.Columns.Add("Drug", typeof(string));
        Dt18.Rows.Add(0, "Indocin");
        Dt18.Rows.Add(1, "indocin");
        Dt18.Rows.Add(17, "Indocin");
        Dt18.Rows.Add(2, "Hydralazine");
        Dt18.Rows.Add(3, "Combivent");
        DataView view = new DataView(Dt18);
        view.Sort = "Drug asc";
        DataTable dtSorted = view.ToTable();

按标题为 "Drug" 的列排序时,"Indocin" 被视为与 "indocin"

相同

设置view.CaseSensitive = false; 如果比较区分大小写,则为 true,否则为 false。

您可以将 Dt18 的 CaseSensitive 属性 设置如下:

DataTable Dt18 = new DataTable();
Dt18.Columns.Add("Dosage", typeof(int));
Dt18.Columns.Add("Drug", typeof(string));
Dt18.Rows.Add(0, "Indocin");
Dt18.Rows.Add(1, "indocin");
Dt18.Rows.Add(17, "Indocin");
Dt18.Rows.Add(2, "Hydralazine");
Dt18.Rows.Add(3, "Combivent");
Dt18.CaseSensitive = true;
DataView view = new DataView(Dt18);
view.Sort = "Drug asc";
DataTable dtSorted = view.ToTable();