LINUX.ORG.RU

История изменений

Исправление grim, (текущая версия) :

не совсем верно. При join строится expression tree, которое сохраняется до лучших времен, когда данные реально понядобятся. тогда оно будет проанализированно с дополнительными наложеннми условиями и процедурами

var join = from a in arr1 
    join b in arr2 on a equals b
     select a;

var c = from j in join
     where j>5
     select j;
будет аналогичен
var join = from a in arr1 
    join b in arr2 on a equals b
    where j>5
     select a;
далее работа со списками может оптимизироваться. У меня замена for на linq выражение с join ускорило обработку 2х списков с боле чем 1 часа до нескольких минут(по моему 7 но давно было)

Кроме того можно сложные join разбивать на несколько, зная что linq всё соптимизирует.

Исходная версия grim, :

не совсем верно. При join строится expression tree, которое сохраняется до лучших времен, когда данные реально понядобятся. тогда оно будет проанализированно с дополнительными наложеннми условиями и процедурами

var join = from a in arr1 
    join b in arr2 on a equals b
     select a;

var c = from j in join
     where j>5
     select j;
будет аналогичен
var join = from a in arr1 
    join b in arr2 on a equals b
    where j>5
     select a;
далее работа со списками может оптимизироваться. У меня замена for на linq выражение с join ускорило обработку 2х списков с боле чем 1 часа до нескольких минут(по моему 7 но давно было)