到目前为止,在LINQ中进行连接操作时,我不知道如何确定哪个列表必须首先出现以及哪个列表必须出现。假设我有两个列表,List<Product>
和List<Order>
。
编辑:
我的困惑是决定
List<Product>.Join(List<Order>, ...)
或
List<Order>.Join(List<Product>, ...)
答案 0 :(得分:1)
Enumerable.Join
执行内部,equijoin。来自MSDN:
'内在'意味着只有元素 在其他序列中有匹配 包含在结果中。 'equijoin' 是键的连接 比较平等。
因此,选择哪个序列被视为“外部”序列对查询结果中存在的项目没有影响。他们各自的预测相等的所有(outer, inner)
对将进入。
但是,结果中的项目的排序会受到影响。来自MSDN:
加入保留的顺序 外部的元素,以及每个的元素 这些元素,顺序 匹配内在的元素。
另一个微不足道的问题是,切换'外部'和'内部'将意味着委托参数的顺序也必须交换。