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();
我注意到当使用数据视图(在 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();