<p>I am new to LINQ. I am trying to find the rows that does not exists in the second data table.  </p>

<p>report_list and benchmark both type are : DataTable. Both these datatables are being populated using OleDbCommand,OleDbDataAdapter. I am getting an error "Specified cast is not valid."  in foreach ... loop. I would appreciate your help.</p>

<pre><code>            var result = from a in report_list.AsEnumerable()
                         where !(from b in benchmark.AsEnumerable()
                                 select b.Field&lt;int&gt;("bench_id")
                                )
                                .Contains(a.Field&lt;int&gt;("BenchmarkID"))
                         select a;



            foreach (var c  in result)
            {
                Console.WriteLine(c.Field&lt;string&gt;("Name"));
            }
</code></pre>

I don't know if I understood your question. Are you trying to get the items that exists in the first table but not in the second?
```
```
var first = new string[] { "b", "c" };
var second = new string[] { "a", "c" };
//find the itens that exist in "first" but not in "second"
var q = from f in first
        where !second.Contains(f)
        select f;
foreach (var s in q) {
    Console.WriteLine(s);
}

//Prints:
//b
```
```
I suggest you to make the inner query first, once it does not depend on the outer record.