Re[47]: The door
От: Sharov Россия  
Дата: 13.07.18 12:54
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Сравни методы-расширения:

V>
V>public static class Queryable {
V>...
V>    public static IQueryable<TResult> Select<TSource, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TResult>> selector);
V>

V>vs
V>
V>public static class Enumerable {
V>...
V>    public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
V>


Работают через соотв. интерфейсы -- https://msdn.microsoft.com/en-us/library/system.linq.queryable(v=vs.110).aspx
Читайте Remarks внизу. Напрямую Queryable или Enumerable редко зачем используют.
Кодом людям нужно помогать!
Re[48]: The door
От: vdimas Россия  
Дата: 13.07.18 13:01
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Работают через соотв. интерфейсы


Угу, через разные.
Re[49]: The door
От: Sharov Россия  
Дата: 13.07.18 13:02
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Угу, через разные.


И? Методы расширения у интерфейсов одни и те же.
Кодом людям нужно помогать!
Re[47]: The door
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.07.18 13:16
Оценка: +1
Здравствуйте, vdimas, Вы писали:



S>>LINQ (Language-Integrated Query) представляет простой и удобный язык запросов к источнику данных. В качестве источника данных может выступать объект, реализующий интерфейс IEnumerable (например, стандартные коллекции, массивы), набор данных DataSet, документ XML. Но вне зависимости от типа источника LINQ позволяет применить ко всем один и тот же подход для выборки данных.


V>ИМХО, тут имелось ввиду, что внешне подход один и тот же.


Имелось в виду, что Linq реализует единый подход в любым источникам данных.
А внутри может быть все по разному. Как я уже давал ссылку https://github.com/antiufo/roslyn-linq-rewrite вплоть до компиляции в CIL.

А как это реализовано это другой вопрос. Запрос к БД или сгенерированный запрос в IL не перестал быть линком. Или ты для этого другое название придумаешь?
и солнце б утром не вставало, когда бы не было меня
Re[44]: The door
От: alex_public  
Дата: 13.07.18 14:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>

_>>Linq используется для того, чтобы разделить стратегю исполнения и сам "запрос".

_>>Это полная чушь, т.к. для разделения используется банальный делегат, а linq тут не нужно в принципе. Причём он по сути сам в этом "признаётся" здесь http://rsdn.org/forum/flame.comp/7194415.1:
Автор: Sinclair
Дата: 12.07.18

_>>[q]
S> Ну вот здесь Optimising LINQ https://github.com/antiufo/roslyn-linq-rewrite
S>используются не банальные делегаты. Тот же Linq to SQL. Там вообще о делегатах нет речи. Там только деревья выражений.

Совершенно верно. И вот когда на базе этих техник сделают аналог кода Синклера, мы и сможем наконец то оценить эффективность Linq для данных задач. И по времени написания такого кода и по производительности (кстати будет очень весело померить время исполнения для нулевого входного массива — у простого for'a там будет просто 0, у такого кода будет весьма печальное число).

А вот привлекать код Синклера для целей оценки эффективности Linq — это просто смешно, т.к. от Linq там нет ничего. Скорее наоборот, его код демонстрирует как можно красиво абстрагировать подобные алгоритмы без всякого Linq.
Re[45]: The door
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.07.18 15:10
Оценка:
Здравствуйте, alex_public, Вы писали:


S>> Ну вот здесь Optimising LINQ https://github.com/antiufo/roslyn-linq-rewrite

S>>используются не банальные делегаты. Тот же Linq to SQL. Там вообще о делегатах нет речи. Там только деревья выражений.

_>Совершенно верно. И вот когда на базе этих техник сделают аналог кода Синклера, мы и сможем наконец то оценить эффективность Linq для данных задач. И по времени написания такого кода и по производительности (кстати будет очень весело померить время исполнения для нулевого входного массива — у простого for'a там будет просто 0, у такого кода будет весьма печальное число).


Ну по ссылкам Optimising LINQ там есть сравнение.

_>А вот привлекать код Синклера для целей оценки эффективности Linq — это просто смешно, т.к. от Linq там нет ничего. Скорее наоборот, его код демонстрирует как можно красиво абстрагировать подобные алгоритмы без всякого Linq.


E Linq куча возможностей как тот же IQueryable он имеет доступ к деревьям выражений https://habr.com/post/256821/
и солнце б утром не вставало, когда бы не было меня
Re[46]: The door
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.07.18 17:16
Оценка:
Здравствуйте, vdimas, Вы писали:

I>>Может ты покажешь, где же Синклер тебе нахамил ? А то по всему топику только твоё хамство.


V>Ты имеешь ввиду моё выражение "трюкач" в его адрес?

V>Это было настолько страшно, что теперь IB безвозвратно сломал себе моск? ))

Так ты покажаешь, где Синклер тебе нахамил или как обычно ?
Re[48]: The door
От: vdimas Россия  
Дата: 13.07.18 17:43
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>А внутри может быть все по разному. Как я уже давал ссылку https://github.com/antiufo/roslyn-linq-rewrite вплоть до компиляции в CIL.


Может, ес-но.
Непонятно лишь, почему такое преобразование не делается самим компилятором C# еще с первых версий Linq.
В С++ с выходом лямб они сразу же умели инлайниться компилятором.


S> А как это реализовано это другой вопрос. Запрос к БД или сгенерированный запрос в IL не перестал быть линком. Или ты для этого другое название придумаешь?


Что и для чего ты пытаешься спросить?
Re[50]: The door
От: vdimas Россия  
Дата: 13.07.18 17:44
Оценка:
Здравствуйте, Sharov, Вы писали:

V>>Угу, через разные.

S>И? Методы расширения у интерфейсов одни и те же.

Названия методов одни и те же,ты хотел сказать?
Re[47]: The door
От: vdimas Россия  
Дата: 13.07.18 17:48
Оценка:
Здравствуйте, Ikemefula, Вы писали:

V>>Ты имеешь ввиду моё выражение "трюкач" в его адрес?

V>>Это было настолько страшно, что теперь IB безвозвратно сломал себе моск? ))
I>Так ты покажаешь, где Синклер тебе нахамил или как обычно ?

Тю.
Их мильоны у меня:
http://www.rsdn.org/forum/flame.comp/7053371.1
Это так человек входит в обсуждение.
И далее по обсуждению просто россыпь наездов в таком же духе.
Re[44]: The door
От: alex_public  
Дата: 13.07.18 17:52
Оценка: +1
Здравствуйте, Sharov, Вы писали:

_>>

_>>Linq используется для того, чтобы разделить стратегю исполнения и сам "запрос".

_>>Это полная чушь, т.к. для разделения используется банальный делегат, а linq тут не нужно в принципе.
S>Чегой-то? Один интерфейс к данным (select from), а стратегия исполнения разная -- объекты в памяти, бд, xml и т.д.

Показываю на пальцах:

1. берём код Синклера из теста
2. переименовываем его вариант функции select во что-нибудь другое, например в map2d
3. меняем код запуска алгоритма с "from d in data select ... " на "map2d(data, d=>...)"
4. убираем все упоминания о linq в проекте (т.е. даже import System.Linq не будет)
5. проводим показанные Синклером тесты и убеждаемся что получили в точности тоже самое быстродействие при том же самом разделение задания алгоритма и кода его реализации

Т.е. на самом деле цель была достигнута без всякого Linq, а оно было пристёгнуто просто для видимости.
Re[51]: The door
От: Sharov Россия  
Дата: 13.07.18 18:03
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Названия методов одни и те же,ты хотел сказать?


Да, и соотв. лямбды будут одинаковы.
Кодом людям нужно помогать!
Re[45]: The door
От: Sharov Россия  
Дата: 13.07.18 18:09
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Показываю на пальцах:


_>1. берём код Синклера из теста

_>2. переименовываем его вариант функции select во что-нибудь другое, например в map2d
_>3. меняем код запуска алгоритма с "from d in data select ... " на "map2d(data, d=>...)"
_>4. убираем все упоминания о linq в проекте (т.е. даже import System.Linq не будет)
_>5. проводим показанные Синклером тесты и убеждаемся что получили в точности тоже самое быстродействие при том же самом разделение задания алгоритма и кода его реализации

_>Т.е. на самом деле цель была достигнута без всякого Linq, а оно было пристёгнуто просто для видимости.


Вы ответчиком не ошиблись?
Кодом людям нужно помогать!
Re[48]: The door
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.07.18 18:39
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Тю.

V>Их мильоны у меня:
V>http://www.rsdn.org/forum/flame.comp/7053371.1

Ты терпел ажно полгода ? Ты, похоже, действительно тонко чувствуешь такие вещи в свой адрес.

V>И далее по обсуждению просто россыпь наездов в таком же духе.


Что касается приведеного, то хамства там нет. Синклер отзывается о тебе в разговоре с другим человеком:
1 "называние всех собеседников идиотами" — это факт, твоя история сообщений(и нарушений) это подтверждает.
2 "беспредметное надувание щек" — это злословие, но не хамство. Но это, опять же, факт, только высказаный эмоционально.

Если ты уверен, что п.2 это нарушение, почему не нажал треугольник или бомбочку ?

Собтсвенно, похоже, тебя легко вывести из равновесия и ты помнишь это месяцами, а может даже и годами, раз у тебя мильён таких примеров.
Это объясняет, почему ты сводишь счеты с Синклером.

Не завидую, жить с такой гремучей смесью внутри. Хорошо, что ты еще цел и здоров, головой и телом, и на стакан не подсел.
Re[46]: The door
От: alex_public  
Дата: 13.07.18 18:46
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Вы ответчиком не ошиблись?


Нет, не ошибся. ) Собственно в моём ответе видна цитата с твоим вопросом, на который я отвечал.
Re[52]: The door
От: vdimas Россия  
Дата: 13.07.18 19:34
Оценка:
Здравствуйте, Sharov, Вы писали:

V>>Названия методов одни и те же,ты хотел сказать?

S>Да, и соотв. лямбды будут одинаковы.

Не будут.
Re[49]: The door
От: vdimas Россия  
Дата: 13.07.18 20:51
Оценка: -2
Здравствуйте, Ikemefula, Вы писали:

V>>Их мильоны у меня:

V>>http://www.rsdn.org/forum/flame.comp/7053371.1
I>Ты терпел ажно полгода ?

Почему пол-года?
Мы всё еще продолжаем там общаться, а этот топик — лишь продолжение того.


I>Ты, похоже, действительно тонко чувствуешь такие вещи в свой адрес.


Ой, да какие "чувствуешь", особенно после суровой школы общения с тобой когда-то? ))
О чём ты шепчешь?
Я просто опять отметил для себя того же самого форумного хулигана.


V>>И далее по обсуждению просто россыпь наездов в таком же духе.

I>Что касается приведеного, то хамства там нет.

Там хамство трижды минимум.
Все разы необоснованное.


I>Синклер отзывается о тебе в разговоре с другим человеком:

I>1 "называние всех собеседников идиотами" — это факт, твоя история сообщений(и нарушений) это подтверждает.

Ложь.
Посмотри на даты сообщений.


I>2 "беспредметное надувание щек" — это злословие, но не хамство. Но это, опять же, факт, только высказаный эмоционально.


Это и есть грубое хамство.
В этом смысле "трюкач" и вовсе похвала, а гляди ж ты как анус порвало! ))

Тем более, что никакого надувания щёк не было.
Один ненормальный юнец доколебался, чтобы я объяснил ему отличия статической типизации от динамической.
Я отказался, сначала вежливо (а почему я должен это делать?)
В ответ понеслись прямые оскорбления.

Тебе достаточно пройтись от начала обсуждения всего 5 сообщений, чтобы увидеть развитие событий.

В общем, Синклер как обычно форумное хамло с гнильцой.
Общение с ним происходит по единственной причине — больше "с той стороны баррикад" поспорить особо и не с кем.
Приходится терпеть этого шута горохового.
Смотреть на его ужимки и прыжки.


I>Если ты уверен, что п.2 это нарушение, почему не нажал треугольник или бомбочку?


Детсад.
Ты уже тут десяток лет, должен был заметить простую закономерность:
оскорблять, глумиться, хамить, нападать на коллег, критикующих "генеральную линию партию" зазорным НЕ считается.
В этом нет абсоютно ничего плохого.
Все средствва хороши.

На других нападать нельзя.
"Как ты мог, вот же свинство!" — примерно такая реакция.
Причём, играют на удивление весьма натурально. ))

Это особенность некоторых ярких представителей тутошней команды.
Они на своём поле.
Поэтому, игра по их правилам, или никакая.

Пока это не превращается в полнейшую клинику, как в случае IB — я лишь лениво отмахиваюсь.
Наблюдая при этом, ес-но, совершенно несимметричную реакцию на абсолютно идентичные ситуации. ))
Да и похер.
Буквально несколько тутошних неадекватов разогнали кучу интересных собеседников в разное время.
Поэтому, работаем с тем "материалом", что есть по-факту. ))


I>Собтсвенно, похоже, тебя легко вывести из равновесия и ты помнишь это месяцами, а может даже и годами, раз у тебя мильён таких примеров.


Ты-то хоть сопли не разводи. ))
Ничего военного с моей стороны не было.
Подумаешь, рвануло анус у IB, подумаешь, я ответил пару раз в его же манере.
Он же этого и хотел, разве не?

Потом и наскучило.
От него инфы всё-равно ноль, совсем глупое времяпрепровождение выходит, бо товарищ более чем бесполезен.


I>Это объясняет, почему ты сводишь счеты с Синклером.


А с кем тут сводит счёты Синклер?
Почему бы тебе не задать этот вопрос ему каждый раз, когда у него рвёт крышу на очередного несогласного с политикой партии?
Очко жмых-жмых или что? ))
Ты же вроде не из робких?
Или я ошибаюсь? ))


I>Не завидую, жить с такой гремучей смесью внутри. Хорошо, что ты еще цел и здоров, головой и телом, и на стакан не подсел.


Я тебя умоляю, я человек простой.
В реальной-то жизни оно ж проще, бо все славные ребята.
Это на форумах говнецо от безнаказанности демонстрируется.

А я уверен, поймай того же IB в реальной жизни — так он сразу просто душка будет!
Паинька!

Там вот вся эта хрень читается как по нотам, когда чел позволяет себе не отвечать за базар.
Сорт людей такой.
Да и хрен с ними.
Отредактировано 13.07.2018 21:02 vdimas . Предыдущая версия .
Re[35]: 2D-Linq и оптимизация цифровых фильтров - 3
От: IB Австрия http://rsdn.ru
Дата: 14.07.18 08:03
Оценка:
Здравствуйте, vdimas, Вы писали:

V>"По краю" ходить умеешь? — не умеешь.

Душа моя, ты свои края потерял так давно, что про края других можешь даже не заикаться

V>Ты не умеешь, так шта свободен.

Все, спекся... "а как дышал, как дышал!!" (с) =)))
Мы уже победили, просто это еще не так заметно...
Re[50]: The door
От: IB Австрия http://rsdn.ru
Дата: 14.07.18 08:10
Оценка:
Здравствуйте, vdimas, Вы писали:


V>Пока это не превращается в полнейшую клинику, как в случае IB — я лишь лениво отмахиваюсь.

...
V>Подумаешь, рвануло анус у IB, подумаешь, я ответил пару раз в его же манере.
...
V>А я уверен, поймай того же IB в реальной жизни — так он сразу просто душка будет!

А я молодец! Как же тебя расплющило-то, большая часть сообщения опять про меня =)
И как выяснилось, ты еще и трус — напрямую ответить стремаешься, осталось по чужим топикам шарахаться.
Мы уже победили, просто это еще не так заметно...
Re[36]: 2D-Linq и оптимизация цифровых фильтров - 3
От: vdimas Россия  
Дата: 14.07.18 08:17
Оценка:
Здравствуйте, IB, Вы писали:

V>>"По краю" ходить умеешь? — не умеешь.

IB>Душа моя, ты свои края потерял так давно, что про края других можешь даже не заикаться

Опять советы удумал давать?
Проблемы с обучаемостью, смотрю? ))


V>>Ты не умеешь, так шта свободен.

IB>Все, спекся... "а как дышал, как дышал!!" (с) =)))

И продолжаю замечательно с другими коллегами.
Просто конкретно тебе мне ответить нечего.
Отсутствует предмет обсуждения.
Твои желания пофлеймить, не совпадают с твоими возможностями.
Иди на кошках потренируйся, потом приходи, посмотрим на тебя.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.