Информация об изменениях

Сообщение Re[12]: «Собаку съел» от 23.01.2017 15:18

Изменено 23.01.2017 15:22 Serginio1

Re[12]: «Собаку съел»
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Serginio1, Вы писали:


S>> А это что?

S>>
S>>public static IEnumerable<T> Compose<T, Y>(this IEnumerable<T> src, Expression<Func<T, Y>> propertyExpression, Expression<Func<Y, bool>> func)
S>>        {
S>>            return src.Where(Expression.Lambda<Func<T, bool>>(Expression.Invoke(func, propertyExpression.Body), propertyExpression.Parameters).Compile());
S>>        }
S>>

V>Это то, что должен был генерить компилятор.
V>Но приходится тебе.

А я уже в 1000 раз привожу ссылки где это делается
Optimising LINQ
roslyn-linq-rewrite
Re[12]: «Собаку съел»
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Serginio1, Вы писали:


S>> А это что?

S>>
S>>public static IEnumerable<T> Compose<T, Y>(this IEnumerable<T> src, Expression<Func<T, Y>> propertyExpression, Expression<Func<Y, bool>> func)
S>>        {
S>>            return src.Where(Expression.Lambda<Func<T, bool>>(Expression.Invoke(func, propertyExpression.Body), propertyExpression.Parameters).Compile());
S>>        }
S>>

V>Это то, что должен был генерить компилятор.
V>Но приходится тебе.

А я уже в 1000 раз привожу ссылки где это делается
Optimising LINQ
roslyn-linq-rewrite


Все, что можно руками можно автоматизировать. Сейчас с развитием Рослина много оптимизаций на уровне Кода в CIL.
Кроме того есть Net Native и там намного проще делать оптимизации из-за ограничения в рефлексии.
Все идет своим чередом.