我一直在寻找Zip方法,所以我可以运行一个像这样的结构的对象,我已经制作了这段代码:
var column = from col in database.ColumnReference select col.ColumnSourceName;
var table = from tab in database.TableSourceReference where tab.TableID.Equals
(from col in database.ColumnReference select col.TableID) select tab.TableName;
var columnTable = column.Zip(table, (a, b) => new { Column = a, Table = b });
但它不起作用。我尝试另一个例子:
int[] t1 = { 1, 2, 3 };
int[] t2 = { 4, 5, 6 };
var temp = t1.Zip(t2, (a, b) => new { tmp1 = t1, tmp2 = t2 });
当我运行foreach时它工作正常。
为什么会这样? THK
答案 0 :(得分:0)
var table = from tab in database.TableSourceReference where tab.TableID.Equals
(from col in database.ColumnReference select col.TableID) select tab.TableName;
这是没有意义的,因为您要求TableSourceReference
TableID
等于ID的集合。
我认为你真正想要的是列和表之间的连接。
例如:
from col in database.ColumnReference
join tab in database.TableSourceReference
on col.TableID equals tab.TableID
select new { Column = col, Table = tab}