Возможно, использовать расширение .Except (), чтобы получить разницу между двумя наборами?
(from b in benchmark.AsEnumerable()
select new { id = b.Field<int>("bench_id")}).Except(
from a in report_list.AsEnumerable()
select new {id = a.Field<int>("BenchmarkID")})
На самом деле не уверен в точном синтаксисе, но это должно сработать, взяв идентификаторы в бенчмарке, а затем удалив все эквивалентные идентификаторы в report_list, оставив только идентификаторы, которые не совпадают. (Я надеюсь, что это был порядок, после которого вы ...)
Примечание: это также предполагает, что вышеупомянутая проблема, упомянутая tvanfosson, также не является проблемой