DataTable 中的数据如下:
id key value
1 a aa
1 a aa
2 b bb
2 b bb
3 c cc
3 c cc
现在想要让DataTable变成这个样子的
id key value
1 a aa
2 b bb
3 c cc
代码
void DeleteSameRow(DataSet ds)
{
ArrayList indexList = new ArrayList();
// 找出待删除的行索引
for (int i = 0; i < ds.Tables[0].Rows.Count-1; i++)
{
if (!IsContain(indexList, i))
{
for (int j = i + 1; j < ds.Tables[0].Rows.Count; j++)
{
if (ds.Tables[0].Rows[i][AccountInfo.Columns.AUName].ToString() == ds.Tables[0].Rows[j][AccountInfo.Columns.AUName].ToString())
{
indexList.Add(j);
}
}
}
}
// 根据待删除索引列表删除行
for (int i = indexList.Count - 1; i >= 0; i--)
{
int index = Convert.ToInt32(indexList[i]);
ds.Tables[0].Rows.RemoveAt(index);
}
}
bool IsContain(ArrayList indexList, int index)
{
for (int i = 0; i < indexList.Count; i++)
{
int tempIndex = Convert.ToInt32(indexList[i]);
if (tempIndex == index)
{
return true;
}
}
return false;
}
再看一个实例
///
/// 获取对固定列不重复的新DataTable
///
/// 含有重复数据的DataTable
/// 需要验证重复的列名
///新的DataTable,colName列不重复,表格式保持不变
private DataTable GetDistinctTable(DataTable dt,string colName)
{
DataView dv = dt.DefaultView;
DataTable dtCardNo = dv.ToTable(true, colName);
DataTable Pointdt = new DataTable();
Pointdt = dv.ToTable();
Pointdt.Clear();
for (int i = 0; i < dtCardNo.Rows.Count; i )
{
DataRow dr = dt.Select(colName "='" dtCardNo.Rows[i][0].ToString() "'")[0];
Pointdt.Rows.Add(dr.ItemArray);
}
return Pointdt;
}
模拟极限越野
模拟极限越野开着大巴在各种奇葩路况里送乘客。山路弯道多得让人
模拟火车
模拟火车让你当回真正的火车司机,得先学会看信号灯、操作控制杆
可口的披萨美味的披萨
可口的披萨美味的披萨带您体验经营一家披萨店的乐趣。游戏画风温
定制虚拟偶像最新版
定制虚拟偶像最新版是一款超级经典有趣的日本模拟装扮类型的手游
病娇模拟器手机版正版(yandere simulator)
病娇模拟器最新版手游是一款萌妹二次元模拟游戏,玩家在游戏中可