join -结果大于输入集

本文关键字:输入 大于 结果 join | 更新日期: 2023-09-27 17:49:58

我有一个System.Linq.Enumerable.Join命令,像这样

            var k = ... (List of size 50)
            var r = ... (another List of size 20000)
            var joined = k.Join(r,
                x => x.joinId,
                y => y.somecomplexmember.joinId,
                (first, second) => new ResultInternal { k = first, r= second });

根据我的理解http://msdn.microsoft.com/de-de/library/bb534675(v=vs.110).aspx,这应该执行一个内部连接。结果应该小于或等于k或r长度的最小值,但是,"join"的大小大于50。

我理解错了吗?

谢谢!

join -结果大于输入集

如果您正在寻找内部连接并且仅匹配查询表达式中的id,则可以像简单的where子句一样执行它

var joined=(from x in k from y in r where x.x.joinId==y.somecomplexmember.joinId  select new
  ResultInternal { k = x, r= y});

查询表达式

内连接
var joined=(from x in k
join y in r on  x.x.joinId equals y.somecomplexmember.joinId
select new  ResultInternal { k = x, r= y});