删除table重复行数据

caowenkai 2016-03-16 11:48:13

如图,把txt数据导入到了table中,但是要做个过滤,比如第四列为消费类型 1021 代表消费, 1051代表撤销这笔消费。
入库的时候就要把这两笔删除掉,判断有1051的这一行就要找出与它相同的1021这行,两行同时删掉,共同条件是第二列数据,三列数据,5列数据是一样的。最终过滤完后,这个table里应该只有第一条数据,求解!请附上源码。
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caowenkai 2016-03-16
  • 打赏
  • 举报
回复
是否能来人帮忙解答下?
FTD_Fred 2016-03-16
  • 打赏
  • 举报
回复
我觉得你可以先导入一个临时表,在临时表里做这些操作,然后再弄到正式表里
熊猫rrr 2016-03-16
  • 打赏
  • 举报
回复
可以先把列4位1051的行找出来,储存关联字段(比如第二列的值)生成个列表,然后根据列表删除table中相应的行,不知道你的table到底是什么类型的,如果是DataTable的话,可以这样:

            List<string> Indexes = new List<string>();
            List<DataRow> rowsToBeDeleted = new List<DataRow>();
            foreach (DataRow row in table.Rows)
            {
                if (row[3].ToString() == "1051")
                {
                    Indexes.Add(row[1].ToString());
                }
            }
            foreach (string index in Indexes)
            {
                foreach (DataRow row in table.Rows)
                {
                    if (row[1].ToString() == index)
                    {
                        rowsToBeDeleted.Add(row);
                    }
                }
            }
            foreach (DataRow row in rowsToBeDeleted)
            {
                table.Rows.Remove(row);
            }

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧