Zip方法如何工作

时间:2013-12-22 23:33:26

标签: c# visual-studio

我一直在寻找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

1 个答案:

答案 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}