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