вам не нужно использовать Invoke, это работает просто отлично: var result = from i ints, где isEven (i) select i;

инаю использовать LINQ вообще (пока toXML и toSQL). Я видел, что иногда есть два или более способов достичь одинаковых результатов. Возьмите этот простой пример, насколько я понимаю, оба возвращают одно и то же:

SomeDataContext dc = new SomeDataContext();

var queue = from q in dc.SomeTable
        where q.SomeDate <= DateTime.Now && q.Locked != true
        orderby (q.Priority, q.TimeCreated)
        select q;

var queue2 = dc.SomeTable
        .Where( q => q.SomeDate <= DateTime.Now && q.Locked != true )
        .OrderBy(q => q.Priority)
        .ThenBy(q => q.TimeCreated);

Помимо любой ошибки, которую я мог допустить в синтаксисе или в пропущенном параметре или разнице, идея состоит в том, что есть два способа выразить одно и то же; Я понимаю, что у первого метода есть некоторые ограничения и что «точечная нотация» более полная, но кроме этого, есть ли другие преимущества?