用DataTable.Merge()解决了一个排序问题
2007-03-02 21:24
429 查看
首先明确一点,DataTable不支持排序。
在一个DataTable(dt)中已经存在无序数据,要实现排序,我想到了两个方法:
方法一:
可以先构造一个列表(list),按排序顺序存储dt主键列的值; 然后主要是利用DataTable.Merge方法
1 StrongTypedDataTable tempDt;
2 //使tempDt具有dt的Schema 和 Constraint
3 tempDt = new StrongTypedDataTable();
4 foreach(string key in list)
5 {
6 //如果某些列不允许空,则NewRow()->赋key值->再Add(dr).
7 tempDt.Rows.Add(key, null.);
8 }
9 //合并后将维持tempDt中的顺序
tempDt.Merge(dt);
dt = tempDt;
方法二:
思路:DataView支持排序,而DataView对象有方法ToTable,没有尝试过,已经理解ToTable原理或有机会用到的人给个答案吧:)
p.s 猪年第一篇post.
在一个DataTable(dt)中已经存在无序数据,要实现排序,我想到了两个方法:
方法一:
可以先构造一个列表(list),按排序顺序存储dt主键列的值; 然后主要是利用DataTable.Merge方法
1 StrongTypedDataTable tempDt;
2 //使tempDt具有dt的Schema 和 Constraint
3 tempDt = new StrongTypedDataTable();
4 foreach(string key in list)
5 {
6 //如果某些列不允许空,则NewRow()->赋key值->再Add(dr).
7 tempDt.Rows.Add(key, null.);
8 }
9 //合并后将维持tempDt中的顺序
tempDt.Merge(dt);
dt = tempDt;
方法二:
思路:DataView支持排序,而DataView对象有方法ToTable,没有尝试过,已经理解ToTable原理或有机会用到的人给个答案吧:)
p.s 猪年第一篇post.
相关文章推荐
- 解决一个mysql关于按文章以及评论的最早时间的排序问题
- 解决一个不同项目合并仓库冲突问题:fatal: refusing to merge unrelated histories
- 求解决一个单链表插入排序的问题
- SQL order by ID desc/asc加一个排序的字段解决查询慢问题
- ElasticSearch42:初识搜索引擎_揭秘如何将一个field索引两次来解决字符串排序问题
- 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题
- 解决一个union多表排序查询问题
- 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题
- DataTable 手动排序 无效的问题解决方法??
- 求解决一个单链表插入排序的问题
- 解决Mysql数据库实现多表联合查询及按照其中一个字段进行排序问题
- 求解决一个单链表插入排序的问题
- elasticsearch核心知识--41.如何将一个string field索引两次来解决字符串排序问题
- 触发器(当2个表中的相应值改变时同时改变一个表中的一个字段)(同时有处理“无法解决 equal to 操作的排序规则冲突”问题)
- 求解决一个单链表插入排序的问题
- 关于vue项目中全局引入一个 .scss文件的问题解决
- 解决一个Maven无法正常加载类库的问题
- 一个古怪的VISTA网络问题解决的坎坷经历
- (超好)xp系统遇到问题解决方法总结(提供了一个解决问题库)