DataTable帮助上的跨产品。 [英] Cross Product On DataTable Help.
问题描述
如果我有一个数据表包含假设一行,例如
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屋!