用数组的方式实现DataTable中的distinct(转)
2008-06-19 13:58
232 查看
M_id, M_name两个字段数据相同的DataRow必须是连续的,不能被分隔
string sql = string.Format("select M_id, M_name from dbo.BusinessWaitTable order by M_id, M_name");
DataTable dt = GetDataTable(sql);
//得出datatable中所有行放入数组
DataRow[] drs = dt.Select();
//存放过滤后DataRow的可变长度数组
ArrayList al = new ArrayList();
//源数组不为空,开始过滤
if (drs.Length != 0)
{
//先加入源数组第一个元素
al.Add(drs[0]);
/*遍历源数组元素,
* 将与目标数组最后一个元素不同的源数组元素加入到目标数组*/
for (int i = 0; i < drs.Length; i++)
{
if (drs[i]["M_id"].ToString() != ((DataRow)al[al.Count - 1])["M_id"].ToString()
&& drs[i]["M_name"].ToString() != ((DataRow)al[al.Count - 1])["M_name"].ToString())
{
al.Add(drs[i]);
}
}
}
string sql = string.Format("select M_id, M_name from dbo.BusinessWaitTable order by M_id, M_name");
DataTable dt = GetDataTable(sql);
//得出datatable中所有行放入数组
DataRow[] drs = dt.Select();
//存放过滤后DataRow的可变长度数组
ArrayList al = new ArrayList();
//源数组不为空,开始过滤
if (drs.Length != 0)
{
//先加入源数组第一个元素
al.Add(drs[0]);
/*遍历源数组元素,
* 将与目标数组最后一个元素不同的源数组元素加入到目标数组*/
for (int i = 0; i < drs.Length; i++)
{
if (drs[i]["M_id"].ToString() != ((DataRow)al[al.Count - 1])["M_id"].ToString()
&& drs[i]["M_name"].ToString() != ((DataRow)al[al.Count - 1])["M_name"].ToString())
{
al.Add(drs[i]);
}
}
}
相关文章推荐
- 在DataTable中实现DataTable.Select("Distinct")功能/数组的方式实现DataTable中的distinct
- 简单通讯录(以数组的方式实现增删改查)
- 从零开始学C++之模板(二):类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
- 基于数组和节点方式的队列的实现
- JAVA 采用递归方式实现求数组最大值
- Java并发和多线程2:3种方式实现数组求和
- 队列(一)——队列的数组实现方式
- 算法导论Java实现-随机化数组的两种方式(5.3章节)
- 数据结构与算法分析-用C语言实现栈(数组方式)
- datatable的动态列隐藏按钮及实现方式
- 类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
- CPP实现队列,(数组的方式)
- 用冒泡的方式对数组进行排序, 并写出对应的优化后的代码实现。(重点写思路、原理)
- 详解三种C#实现数组反转方式
- Effective Java(数组和泛型的实现方式、用无限制的通配符提高API的灵活性)
- Effective Java(数组和泛型的实现方式、用无限制的通配符提高API的灵活性)
- Java在数组中插入数据实现方式
- PHP foreach遍历多维数组实现方式
- 使用移动数组下标的方式实现增删改查
- PHP数组去重比较快的实现方式