List <product> .Join(List <order>,...)与List <order> .Join(List <product>,...)相同?</product> </order> </order> </产品>

时间:2010-10-19 02:37:26

标签: c# linq

到目前为止,在LINQ中进行连接操作时,我不知道如何确定哪个列表必须首先出现以及哪个列表必须出现。假设我有两个列表,List<Product>List<Order>

编辑:

我的困惑是决定

List<Product>.Join(List<Order>, ...) 

List<Order>.Join(List<Product>, ...) 

1 个答案:

答案 0 :(得分:1)

Enumerable.Join执行内部,equijoin。来自MSDN:

  

'内在'意味着只有元素   在其他序列中有匹配   包含在结果中。 'equijoin'   是键的连接   比较平等。

因此,选择哪个序列被视为“外部”序列对查询结果中存在的项目没有影响。他们各自的预测相等的所有(outer, inner)对将进入。

但是,结果中的项目的排序会受到影响。来自MSDN:

  

加入保留的顺序   外部的元素,以及每个的元素   这些元素,顺序   匹配内在的元素。

另一个微不足道的问题是,切换'外部'和'内部'将意味着委托参数的顺序也必须交换。