Я не уверен в C#.
я действительно знаю, однако, что можно записать, что VB LINNQ кодирует w/out эти 3,5 библиотеки, пока Вы используете компилятор VS 2008 года для предназначения для 2,0 платформ.
необходимо будет, однако, реализовать некоторые методы LINQ Ваш сам.
LINQ использует синтетическое преобразование для перевода запросов в исполняемый код. В основном это возьмет код как это:
dim q = from x in xs where x > 2 select x*4;
и преобразовывают его в код как это:
dim q = xs.where(function(x) x > 2).select(function(x) x * 4);
Для функциональности LINQ, которая поставлется с 3,5 платформами, те методы реализованы как дополнительные методы или на IEnumerable или на IQueryable (существует также набор методов, которые работают над наборами данных также).
методы расширения IEnumerable по умолчанию определяются в Системе. Linq. Счетный и похожи на это:
<Extension()>
public function Select(of T, R)(source as IEnumerable(of T), transform as Func(of T, R)) as IEnumerable(of R)
'do the transformation...
end function
дополнительные методы IQueryable берут деревья выражений в качестве аргументов, а не лямбды. Они похожи на это:
<Extension()>
public function Select(of T, R)(source as IQueryable<T>, transform as Expression(of Func(of T, R))
'build a composite IQueryable that contains the expression tree for the transformation
end function
версии дерева выражений позволяют Вам получить древовидное представление выражений, предоставленных пунктам, которые могут тогда использоваться для генерации кода SQL (или что когда-либо еще Вы хотите).
Вы могли, вероятно, создать свою собственную версию LINQ к объектам приблизительно через день или около этого. Это является все довольно прямым.
, Если бы Вы хотите использовать DLINQ, тогда вещи были бы трудными.
$mb = imap_open("{host:port/imap}","username", "password" );
$messageCount = imap_num_msg($mb);
for( $MID = 1; $MID <= $messageCount; $MID++ )
{
$EmailHeaders = imap_headerinfo( $mb, $MID );
$Body = imap_fetchbody( $mb, $MID, 1 );
doSomething( $EmailHeaders, $Body );
}