Еж,
Возможно, вы сможете использовать функцию LINQ intersect
или попробовать:
var matches = from jobs in lstJobs
join comp in lstCompare on jobs.Number equals comp.Number
select jobs;
или синтаксис LINQ:
var matches = lstJobs.Join(lstCompare, jobs => jobs.Number,
comp => comp.Number, (jobs, comp) => jobs);
и вот версия reSharper, основанная на вашем оригинальном цикле:
List<Job> lstFiltered = (lstJobs.SelectMany(jobThis => lstCompare,
(jobThis, jobComp) => new {jobThis, jobComp})
.Where(@t => @t.jobThis.Number == @t.jobComp.Number)
.Select(@t => @t.jobThis)).ToList();
слегка многословно, но еще один способ снять кожу с кошки.
[отредактировано] как указано в новом списке, а не в выбранных элементах - doh