C#如何在数据集中重复行时合并两个单元格 [英] C# how to merge two cells when row is duplicate in dataset
本文介绍了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屋!
查看全文