ASP.NET中关于数据匹配和查找的几点研究(欢迎大神提供更精妙算法)

该博客探讨了在ASP.NET中如何高效地匹配和查找大数据量的DataTable。通过对比不同方法,如Select方法、普通匹配、排序后匹配以及FindRows方法,作者发现DataTable.Select()方法在执行速度上具有优势。然而,作者对这种方法的可靠性表示怀疑,并期待更多优化算法的分享。
摘要由CSDN通过智能技术生成

相信下面这种情况在ASP.NET开发中会时常遇到:查找DataTable_2中的某列数据是否全部出现在DataTable_1中,如果是,则提取部分数据,否则输出提示。

如果是小数据量,任何的循环查找都无所谓。如果大数据量,那就要讲究方法了。本人纠结于这种匹配好久,弄了个测试程序。希望大神能够继续补充更好的算法。

代码主要功能如下:

从两个Exlcel中读取数据,检查dt2的订单编号列数据是否全部出现在dt1的订单编号列。如果未查找到某条数据,则跳出方法。

表1的数据是8356条。(包含很多列,实际开发中数据可能来源于数据库,或者Excel导入。)

表2的数据是8206条。

以下是代码:

protected void Page_Load(object sender, EventArgs e)
    {
        string pathOrd = HttpContext.Current.Server.MapPath("/天猫数据分析/订单报表/订单报表11月份.xlsx");
        string pathPro = HttpContext.Current.Server.MapPath("/天猫数据分析/订单报表/宝贝报表11月份.xlsx");

        
        DateTime timeStart = DateTime.Now;
//自定义方法获取的DataTable
        DataTable dtOrd = CLS_StaticFn.getDtFromExcel(pathOrd);
        DataTable dtPro = CLS_StaticFn.getDtFromExcel(pathPro);
        TimeSpan ts &
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值