c# 快速去掉DataTable 内容中 前后空格

文章介绍了在处理大量数据时,如何通过改进代码提高DataTable内容去前后空格的效率。传统的For循环遍历方式在面对数千条记录和多个Column时效率低下。作者提出使用Expression和DataView.ToTable方法结合的方式,创建新Column并应用trim表达式,然后通过转换回原始DataTable结构,显著提升了处理速度。
摘要由CSDN通过智能技术生成

一直一来Data Table 都是For 循环一条条,一个一个Column的的For 下去进行 Trim,
发现这个做法非常非常影响效率,只要DataTable里面有1000条记录,然后Column超过 20条个,
Format的Trim的效率就非常慢。

 #region 以下的处理空格的效率太慢
            try
            {
                for (int k = 0; k < oldDTable.Rows.Count; k++)
                {
                    Application.DoEvents();
                    for (int j = 0; j < oldDTable.Columns.Count; j++)
                    {
                        Application.DoEvents();
                        switch (oldDTable.Columns[j].DataType.Name)
                        {
                            case "Decimal": //数字型0置为空                        
                                /*
                                 * 数字为0 ,是一个真实的存在,不能去掉为 DBNull
                                if (oldDTable.Rows[k][j] != null && Decimal.TryParse(oldDTable.Rows[k][j].ToString(), out decimalResult) && (Decimal)(oldDTable.Rows[k][j]) == 0)
                                    oldDTable.Rows[k][j] = DBNull.Value;
                                */

                                if (oldDTable.Rows[k][j] != null)
                                    oldDTable.Rows[k][j] = oldDTable.Rows[k][j].ToString().Trim();

                                break;
                            case "String": //字符型去空
                                if (oldDTable.Rows[k][j] != null)
                                    oldDTable.Rows[k][j] = oldDTable.Rows[k][j].ToString().Trim();

                                break;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值