利用Hashtable做数据重复验证

项目要求,对上传的Excel数据进行重复验证.一般都是双层for循环,这样很慢.利用Hashtable一个键对应一个值的特性,做重复验证.

代码如下:

 

 /// <summary>
 /// 数据重复验证
 /// </summary>
 /// <param name="dt">数据</param>
 /// <returns>重复信息</returns>    

 public string RepeatVerify(DataTable dt)
 {
        string ErrorList = "";
        Hashtable ht = new Hashtable();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            int Column = i + 1;
            if (!string.IsNullOrEmpty(dt.Rows[i][0].ToString()) && !string.IsNullOrEmpty(dt.Rows[i][6].ToString()))
            {
                 string strVisible = dt.Rows[i][0].ToString() + dt.Rows[i][6].ToString();//要验证的字符串
                 int Key = strVisible.GetHashCode();//生成唯一键值
                 if (ht.ContainsKey(Key))
                 {
                      ErrorList += "第" + ht[Key] + "行和第" + Column + "行数据重复//n";
                 }
                 else
                 {
                      ht.Add(Key, Column);
                 }
            }
        }
        ht.Clear();//清空Hashtable 
        return ErrorList;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值