Перевести встроенный запрос LINQ в метод расширения - PullRequest
0 голосов
/ 09 июля 2010

Я не могу понять метод расширения LINQ Join ... У меня есть следующий встроенный запрос LINQ:

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

Что эквивалентно этому в синтаксисе метода расширения LINQ?

Ответы [ 2 ]

5 голосов
/ 09 июля 2010

Вы имели в виду лямбда-синтаксис?

var cc = zipcodes.Join(contactsRepo.UDF_SelectSome(),
                       z => z.Zipcode,
                       c => c.Zip,
                       (z, c) => c);
0 голосов
/ 09 июля 2010

Если вы используете объединение для фильтрации и вам нужен только объект из одного набора, используйте селектор (последний параметр), который выбирает этот объект.

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))
...