如果我想比较两个数据表并获得新数据表的差异,但我想保留一个未比较的列。 例如: 优先数据表 名称|号码 ---- | ------- Jude | 12 马克| 14 Bin | 15 秒数据表 名称 ------ Jude Robin Kamil 数据表必须具备: 名称|号码 ------- | ---------- 马克| 14 Bin | 15
解决方案你的样本数据 DataTable dt1 = new DataTable(); dt1.Columns.Add( 名称, typeof ( string )); dt1.Columns.Add( Number, typeof ( int )); dt1.Rows.Add( Jude, 12); dt1.Rows.Add( Mark, 14); dt1.Rows.Add( Bin, 15); DataTable dt2 = new DataTable(); dt2.Columns.Add( 名称, typeof ( string )); dt2.Rows.Add( Jude); dt2.Rows.Add( Robin); dt2.Rows.Add( Kamil);
使用LINQ两个表中无与伦比的名称字段
var filter = 来自 firstDt dt1 .AsEnumerable() where !( from secondDt in dt2.AsEnumerable() select secondDt [ Name])。包含(firstDt [ Name]。ToString ()) 选择 firstDt; DataTable resultDt = filter.CopyToDataTable();resultDt(输出) 祝你好运; - )
If I want to compare two datatables and get the difference in new datatable but I want to keep an uncompared column. example: first Datatable Name | Number ---- |------- Jude | 12 Mark | 14 Bin | 15 second Datatable Name ------ Jude Robin Kamil the Datatable must have: Name | Number -------|---------- Mark | 14 Bin | 15
解决方案 ur sample data DataTable dt1 = new DataTable(); dt1.Columns.Add("Name",typeof(string)); dt1.Columns.Add("Number",typeof(int)); dt1.Rows.Add("Jude", "12"); dt1.Rows.Add("Mark", "14"); dt1.Rows.Add("Bin", "15"); DataTable dt2 = new DataTable(); dt2.Columns.Add("Name", typeof(string)); dt2.Rows.Add("Jude"); dt2.Rows.Add("Robin"); dt2.Rows.Add("Kamil");using LINQ the unmatched 'Name' fields of two tables
var filter= from firstDt in dt1.AsEnumerable() where !(from secondDt in dt2.AsEnumerable() select secondDt["Name"]).Contains(firstDt["Name"].ToString()) select firstDt; DataTable resultDt = filter.CopyToDataTable();resultDt(Output) good luck ;-)
更多推荐
如何将两个DataTable与不同列数进行比较?
发布评论