c# - DataTable 列按 ASCII 顺序排序,而不是

标签 c# datatable sorting ascii

如果我有两个字符串,并且我需要按 ASCII 顺序(而不是不变文化顺序)比较它们,我通常可以使用:

int c = String.Compare(a, b, StringComparison.Ordinal);

如果我有一个 DataTable,并且我想使用 DataView 的 Ordinal 字符串比较对其中一列进行排序,我该怎么做?

最佳答案

不幸的是,DataView 中没有任何内置功能可以促进自定义排序逻辑;这是我的主要提示之一,也是我们决定在我原来的工作中推出自己的数据访问层的原因之一。

虽然我不知道这对您来说有多可行,但要真正实现这一点,您需要将另一列作为 int 添加到表中,然后根据您自己的比较对数组中的行进行排序逻辑,然后将索引存储在 int 列的数组中。然后,不是按 string 列排序,而是按 int 列排序。

但是,我确实认识到,这不能满足 GridView 完成的自动排序之类的要求,并且它不考虑计算后发生的数据更改排序位置。不幸的是,我认为没有什么可以真正帮助解决这个问题。

如果您希望对其进行可视化排序,请检查您的可视化控件是否支持自定义排序机制。这就是我能提供的所有建议。

关于c# - DataTable 列按 ASCII 顺序排序,而不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769208/

相关文章:

c# - WebApi 2 返回类型

c++ - 如何在 multimap 中按排序顺序打印键的值

c - 对数组的索引进行排序

c++ - 在 C++ 中将一个 vector 与另一个 vector 一起排序

c# - WPF DataGrid 和 DataGridTemplateColumn 标题问题

c# - MSBuild:描述调用哪个构造函数

c# - 是否有一行代码可以获取该字符串的特定部分?

jquery - 在 jquery DataTables 加载之前,表数据加载,简短且未格式化。

excel - 有没有办法通过仅粘贴值但保留表格来将完整的工作表复制到另一个工作簿?

c# - 来自文本文件的数据表?