DataTable帮助上的跨产品。 [英] Cross Product On DataTable Help.

查看:68
本文介绍了DataTable帮助上的跨产品。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有一个数据表包含假设一行,例如



ID姓名电话

1 a 3456



和另一个可能包含任意行数的数据表



ID姓名电话

2 b 1234

3 c 234

...... ......



我想创建另一个数据表将包含.aspx.cs页面中上述两个表格的笛卡尔积。例如



1 2 ....

2 1。 ....

1 3 ......

3 1 ......





是否可以使用Linq或其他方式?或者还有其他替代方法吗? Plz帮助

解决方案

猜猜这就是你想要的...... :)两个名为dt1&的数据表dt2&将一个组合为dt3



  var  combinedRows = 来自   dt1.AsEnumerable()
来自 b in dt2.AsEnumerable()
select new {ColumnID1 = a [ ID1],ColumnID2 = b [ ID2]};
var dt3 = new DataTable(); // 还在此行之后添加列,如ID1,ID2等...
foreach var item in combinedRows)
{
row = dt3 .NewRow();
row [ ID1] = item.ColumnID1;
row [ ID2] = item.ColumnID2;
dt3.Rows.Add(row);
}
// 现在dt3拥有所有组合


If i have a datatable that contains suppose one row e.g.

ID Name Phone
1 a 3456

and another Datatable that may contain any number of rows

ID Name Phone
2 b 1234
3 c 234
... ... ...

I wanna Create another datatable that will contain the cartesian product of the above two tables in .aspx.cs page e.g

1 2 ....
2 1 .....
1 3 ......
3 1 ......


Is it possible with Linq or some other way? Or there is any other alternative way to do It? Plz Help

解决方案

Guess this is what you want... :) Two datatables named as dt1 & dt2 & combined one as dt3

var combinedRows = from a in dt1.AsEnumerable()
                   from b in dt2.AsEnumerable()
                   select new { ColumnID1 = a["ID1"], ColumnID2 = b["ID2"] };
var dt3 = new DataTable();// Also Add columns after this line, like ID1, ID2 etc...
foreach (var item in combinedRows)
{
     row = dt3.NewRow();
     row["ID1"] = item.ColumnID1;
     row["ID2"] = item.ColumnID2;
     dt3.Rows.Add(row);
}
//Now dt3 has all combinations


这篇关于DataTable帮助上的跨产品。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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