这涉及到Join的内部实现。简单来说,Join是根据你需要连接的键将两边的数据分别装入两个类似字典的集合,再根据字典的Key匹配得到结果,所以只要遍历一次两边的数据(左边+右边)即可。如果是你说的那样,就要依次让左边的每个元素匹配右边的每个元素,需要遍历左边*右边这么多的数据,性能有天壤之别。你说的那个,LINQ已经支持了,比如
form a in table1
from b in table2
where a.xx == b.xx
select new { a, b }