删除DataTable中列重复的行

本文介绍了一种使用C#实现的从DataSet中删除重复行的方法。该方法通过比较特定列(AUName)的数据来识别重复项,并利用ArrayList记录需要删除的行索引,最后按索引逆序删除这些行,确保不会因行删除导致的索引变动而遗漏数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    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;
    }

转载于:https://www.cnblogs.com/netflu/archive/2007/03/22/684277.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值