dataset中数据忽略一列数据之后去掉重复项

dataset中数据忽略一列数据之后去重,并把去重复项之前的列一列数据进行合并

DataTable table = new DataTable();
            table.Columns.Add("Column1", typeof(string));
            table.Columns.Add("Column2", typeof(string));
            table.Columns.Add("Column3", typeof(string));
            table.Columns.Add("Column4", typeof(string));

            table.Rows.Add("Value1", "Value2", "Value3","11");
            table.Rows.Add("Value1", "Value2_Diff", "Value3","11"); // 故意改变Column2的值以制造差异
            table.Rows.Add("Value1", "Value2", "Value3_Diff","11"); // 故意改变Column3的值以制造差异

以上为准备工作

  // 假设我们想忽略Column2的差异
            var uniqueRows = rows.GroupBy(row => new { Column1 = row["Column1"], Column3 = row["Column3"] })
                                 .Select(g => g.First())
                                 .ToArray();

//通过groupby把需要重复的去掉,下面把重复项的某一列进行合并

for (int i = 0; i < uniqueRows.Length; i++)
            {
                string tempStr = string.Empty;
                DataRow row = table.NewRow();
                for (int j = 0; j < rows.Length; j++)
                {
                    if (rows[j]["Column1"] == uniqueRows[i]["Column1"] && rows[j]["Column3"] == uniqueRows[i]["Column3"])
                    {
                        tempStr += rows[j]["Column3"].ToString() + "|";
                        
                    }
                }
               
                row["Column1"] = uniqueRows[i]["Column1"];
                row["Column3"] = tempStr.Trim().Remove(tempStr.Length - 1);
                row["Column4"] = uniqueRows[i]["Column4"];
                table.Rows.Add(row);//懒得创建新表了,直接放到旧表中。
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值