本文介绍了C#如何在数据集中重复行时合并两个单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我正在使用VS 2010 C#.net我希望在数据集中重复行时合并两个单元格:例如 在数据集记录中,如下所示 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 2010C#.net I want to merge two cells when row is duplicate in dataset: for exampleIn dataset records are below like thisPNO Descr12 AB13 2112 CD13 14O/p: PNO Descr12 AB\CD13 21\14Thanks,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#如何在数据集中重复行时合并两个单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-27 00:53