将LINQ内联查询转换为扩展方法

时间:2010-07-09 18:04:34

标签: c# linq linq-to-sql join extension-methods

我似乎无法弄清楚LINQ Join扩展方法......我有以下LINQ内联查询:

var cc = from z in zipcodes
         join c in contactsRepo.UDF_SelectSome() on z.Zipcode equals c.Zip       

LINQ-extension-method语法中的等价物是什么?

2 个答案:

答案 0 :(得分:5)

您的意思是Lambda语法吗?

var cc = zipcodes.Join(contactsRepo.UDF_SelectSome(),
                       z => z.Zipcode,
                       c => c.Zip,
                       (z, c) => c);

答案 1 :(得分:0)

如果您正在使用连接进行过滤,并且只想要一个集合中的对象,请使用选择该对象的选择器(最后一个参数)。

var cc = contactsRepo.UDF_SelectSome().Join(
  zipcodes,
  c => c.Zip,
  z => z.Zipcode,
  (c, z) => c); 

或者,如果您只想过滤:

var cc = contactsRepo.UDF_SelectSome()
  .Where(c => zipcodes.Any(z => c.Zip == z.ZipCode))