如何在LINQ中编写交叉连接?

如何在LINQ中编写交叉连接?,linq,Linq,我的应用程序中有一个进程,它返回两个不同的对象列表。两个列表中的对象类型相同。我需要将两个列表交叉连接在一起,形成一个完整的列表。如果是SQL,它应该是这样的: SELECT A.KEY, A.DATA AS DATA1, B.DATA AS DATA2 FROM TABLE1 AS A CROSS JOIN TABLE2 这是纯LINQ,因为数据是在实际的泛型列表集合中返回的 此操作的LINQ语法是什么 托尼交叉连接?为什么那里有一个关于的子句?您最近是否从内部联接更改了?经过进一步研究,我

我的应用程序中有一个进程,它返回两个不同的对象列表。两个列表中的对象类型相同。我需要将两个列表交叉连接在一起,形成一个完整的列表。如果是SQL,它应该是这样的:

SELECT A.KEY, A.DATA AS DATA1, B.DATA AS DATA2
FROM TABLE1 AS A
CROSS JOIN TABLE2
这是纯LINQ,因为数据是在实际的泛型列表集合中返回的

此操作的LINQ语法是什么


托尼

交叉连接?为什么那里有一个关于的
子句?您最近是否从内部联接更改了?经过进一步研究,我发现我的语法不正确。看来我错了,我不需要交叉连接。也许这是我需要的外部连接。我需要返回两个表中键相同的1行。@TonyVitabile,即使您发现实际上需要另一种类型的联接,我可以建议您删除
ON
子句吗?这将帮助未来的读者不会对你的问题和代码感到困惑。你应该添加相当于
A.KEY=B.KEY
。谢谢!这就是我需要的。
var res = from t1 in table1
          from t2 in table2
          select new
          {
              KEY = t1.KEY,
              DATA1 = t1.DATA,
              DATA2 = t2.DATA,
          };