Помимо, кроме другого параметра Any
для проверки включения:
var diff = request.MyStringList.Where(name => !request.Records.Any(x => x.Name == name));
Это вернет дубликаты, которые Except
может (будет) удалять.
В качестве альтернативы левое соединение сшивать предметы вместе. В синтаксисе запроса:
var diff =
from name in request.Records
join r in request.Records on name equals r.Name into rtmp
from r in rtmp.DefaultIfEmpty()
where r == null
select name;