C#如何在数据集中重复行时合并两个单元格 [英] C# how to merge two cells when row is duplicate in dataset

查看:86
本文介绍了C#如何在数据集中重复行时合并两个单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用VS 2010

C#.net我希望在数据集中重复行时合并两个单元格:例如

在数据集记录中,如下所示< pre lang =c#> PNO Descr
12 AB
13 21
12 CD
13 14





O / p:

 PNO描述
12 AB \ CD
13 21 \\\ 14





谢谢,

Karthik

解决方案

试试这个代码..





 DataTable dsInput =  new  DataTable(); 
dsInput.Columns.Add( PNO);
dsInput.Columns.Add( Descr);
dsInput.Rows.Add( 12 AB);
dsInput.Rows.Add( 13 21);
dsInput.Rows.Add( 12 CD);
dsInput.Rows.Add( 13 14);

DataTable dsOutput = new DataTable();
dsOutput.Columns.Add( PNO);
dsOutput.Columns.Add( Descr);



string [] distinctPNO = dsInput.Rows.OfType< datarow>()。选择(k = > k [ PNO]的ToString())个不同的()ToArray的()。;
foreach 字符串 PNO distinctPNO)
{
string concat = ;
var rows = dsInput.Select( PNO =' + PNO + ');
rows.Select(k = > k [ Descr]。ToString())。ToList()。ForEach(k = > {concat + = k + /;});
dsOutput.Rows.Add(PNO,concat.TrimEnd(' /'));
} < / datarow >


I am using VS 2010
C#.net I want to merge two cells when row is duplicate in dataset: for example
In dataset records are below like this

PNO   Descr
12     AB
13     21
12     CD
13     14



O/p:

PNO    Descr
12     AB\CD
13     21\14



Thanks,
Karthik

解决方案

Try this code..


DataTable dsInput = new DataTable();
       dsInput.Columns.Add("PNO");
       dsInput.Columns.Add("Descr");
       dsInput.Rows.Add("12", "AB");
       dsInput.Rows.Add("13", "21");
       dsInput.Rows.Add("12", "CD");
       dsInput.Rows.Add("13", "14");

       DataTable dsOutput = new DataTable();
       dsOutput.Columns.Add("PNO");
       dsOutput.Columns.Add("Descr");



      string[] distinctPNO =  dsInput.Rows.OfType<datarow>().Select(k => k["PNO"].ToString()).Distinct().ToArray();
      foreach (string PNO in distinctPNO)
      {
          string concat = "";
         var rows =  dsInput.Select("PNO='" + PNO + "'");
         rows.Select(k => k["Descr"].ToString()).ToList().ForEach(k => { concat += k + "/"; });
         dsOutput.Rows.Add(PNO, concat.TrimEnd('/'));
      }</datarow>


这篇关于C#如何在数据集中重复行时合并两个单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆