powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выполнение LINQ-запроса внутри условного оператора
25 сообщений из 220, страница 3 из 9
Выполнение LINQ-запроса внутри условного оператора
    #39157142
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван215Но этот лямбда синтаксис... Сжигает остатки мозга.Надо было в институте алгебру, матан, матлогику и прочее посещать, иммунитет бы выработался :)
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157282
Иван215
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще один умник.

Все сие посещал и прекрасно успевал по этим предметам + Общая Алгебра + Аналитическая геометрия + Теория Функций комплексного переменного + Дискретная математика + Функциональный анализ + Теория Вероятностей + продолжать?
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157295
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван215продолжать?Да.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157310
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван215А кстати, не подскажете, что делает метод .AsEnumerable. Формально, конечно, можно писать его и не задумываясь, или просто полагая, что он DataTable преобразует в нечто съедобное для LINQ - то есть в реализацию интерфейса IENumerable.

Но все-таки любопытно, что он делает на самом деле

Код: vbnet
1.
DT.AsEnumerable()


Вообще, LINQ сам по себе позволяет выполнять часто встречающиеся операции над множествами (списками/перечислениями/наборами) некоторых, вообще говоря однотипных элементов. Поиск, фильтрация, группировка, преобразование и т. д.
По сути сами алгоритмы эти не зависят не от структуры ни множеств, ни самих элементов. Вот LINQ и реализует эти алгоритмы, например для операции фильтрации нам нужно лишь условие фильтра и оно будет использоваться в любом случае.
В императивном (интуитивно понятном) алгоритме, мы будем в цикле проходить один набор данных, смотреть, удовлетворяет ли текущий элемент фильтру и если да, засовывать его во временный контейнер, последний и будет результатом.
В LINQ же, нам достаточно просто передать в метод where функцию фильтрации и мы получим аналогичный результат.
Но в первом случае, мы будем писать больше кода, что чревато большими затратами времени и большим количеством ошибок.
И все это счастье нам будет если используемый контейнер всего навсего реализует IEnumerable, (вообще говоря IEnumerator). Но DataTable сделали при царе Горохе, когда матерые программисты с 26 летним стажем были совсем зелеными юнцами с 10 летним стажем и когда не было LINQ.
Конкретно AsEnumerable у DataTable сделали для красоты, эквивалентная конструкция
Код: c#
1.
DataTable.Rows.Cast<DataRow>()


Но про Cast редкий программист знает, не зависимо от стажа.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157327
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут еще может возникнуть путаница с DataTable.AsEnumerable() (я бы назвал ToEnumerable), это очень похоже на IEnumerable.AsEnumerable(), реализация которого делает ровно то, что возвращает переданный аргумент.
Полная чушь конечно! Если бы не одно но!
Интерфейсу IEnumerable наследует IQueryable, который имеет методы расширения аналогичные IEnumerable, которые принимают не делегаты, а деревья выражений.
То есть вызов AsEnumerable() для IQueryable позволит передать выполнение дальнейших действий методам расширения для IEnumerable.
А вызов AsQueryable для IEnumerable позволит использовать деревья выражений, которые вообще говоря можно сформировать во время исполнения.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157417
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНо про Cast редкий программист знает, не зависимо от стажа.

Это шутка? Это же основы LINQ. Самые-самые.

Вообще меня удивляют слова ТС об огромном стаже и великолепной успеваемости по всем предметам. ToList() - это замечательно, очень полезная функция, но отнюдь не универсальная. В целом сказано все правильно - "разные типы - разная обработка". Либо создайте один тип и с ним работайте. Эти плюшки в виде анонимных типов для тех, кто понимает, что это такое и не задает глупых вопросов. При этом не нужно даже знать LINQ, чтобы понимать базовые вещи. А то так можно и до рефлексии дойти, чтобы у разных классов сравнивать одинаковые свойства.
ТС, если вам нужно проверять только Count - вычислите только его. Если у Вас есть набор нужных полей - создайте класс, и пишите в него через LINQ. У Вас не будет никаких сложностей.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157582
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван215Еще один умник.

Все сие посещал и прекрасно успевал по этим предметам + Общая Алгебра + Аналитическая геометрия + Теория Функций комплексного переменного + Дискретная математика + Функциональный анализ + Теория Вероятностей + продолжать?Расслабься. Шуток не понимаешь?
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157685
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxЕвгенийВНо про Cast редкий программист знает, не зависимо от стажа.

Это шутка? Это же основы LINQ. Самые-самые.



Не шутка, действительно многие не знают.


А про основы шутка?
Я то всегда полагал, что LINQ зиждется на примесях, функциях высшего порядка, лямбдах, анонимных типах и автоматическом выводе типов...
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157694
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван215Еще один умник.

Все сие посещал и прекрасно успевал по этим предметам + Общая Алгебра + Аналитическая геометрия + Теория Функций комплексного переменного + Дискретная математика + Функциональный анализ + Теория Вероятностей + продолжать?
А в чем тогда затык?
Банальный определенный интеграл можно понимать как функцию высшего порядка, которая принимает функцию первого порядка в качестве аргумента.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157735
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВAddxпропущено...


Это шутка? Это же основы LINQ. Самые-самые.



Не шутка, действительно многие не знают.

А про основы шутка?
Я то всегда полагал, что LINQ зиждется на примесях, функциях высшего порядка, лямбдах, анонимных типах и автоматическом выводе типов...

Многие и LINQ не знают, но Cast - это основа.

Насчет "примесей" ;) не знаю, но LINQ ни в коем случае не держится на анонимных типах и лямбдах. LINQ - расширенный набор методов для манипуляции коллекциями (IEnumerable, IQueryble) и прекрасно работает без анонимных типов и лямбд. Иногда пользоваться анонимными типами просто вредно.

Например,

Код: c#
1.
var a = from ... where ... select new MyType(){MyField1 = ..., MyField2 = ...}



коллекция типа MyType без всякой анонимности.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157749
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addx LINQ - расширенный набор методов для манипуляции коллекциями (IEnumerable, IQueryble) и прекрасно работает без анонимных типов и лямбд.
Вот что бы этот "расширенный набор" работал, нужны примеси, вывод типов, анонимные типы и лямбды.
Попробуй в LinqToSql например передать не лямбду, но функцию.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157765
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВAddx LINQ - расширенный набор методов для манипуляции коллекциями (IEnumerable, IQueryble) и прекрасно работает без анонимных типов и лямбд.
Вот что бы этот "расширенный набор" работал, нужны примеси, вывод типов, анонимные типы и лямбды.
Попробуй в LinqToSql например передать не лямбду, но функцию.

Давайте не будет смешивать. Я написал в первую очередь про анонимные типы.
Я написал, что если ты не понимаешь сути - то это зло. Судя по всему, понимают немногие.
При чем тут LinqToSQL я вообще не понял. В чем его такая принципиальная особенность? Куда и что нужно передать?
Лямбда-выражения не имеют никакого отношения к Linq вообще. Они активно используются вне Linq и не являются чем-то новым.
Приведите пример в LinqToSQL, где без "лямбды" обойтись нельзя.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157768
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВот что бы этот "расширенный набор" работал, нужны примеси, вывод типов, анонимные типы и лямбды.можно прекрасно работать с Linq без всего этого.
ЕвгенийВПопробуй в LinqToSql например передать не лямбду, но функцию.В чем проблема? объявить Func или Expression вне метода Linq и передать ему как параметр. Без лямбд.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157770
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВот что бы этот "расширенный набор" работал, ..., вывод типов, анонимные типы ...


Я привел пример того, что анонимные типы не нужны, Вы его проигнорировали.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157773
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proможно прекрасно работать с Linq без всего этого.


Вы знали! Ну вот, а такая была интрига. )
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157793
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕвгенийВВот что бы этот "расширенный набор" работал, нужны примеси, вывод типов, анонимные типы и лямбды.можно прекрасно работать с Linq без всего этого.

отправляю вас к поделке Сережи Брина с вопросом "что нового в .Net Framework 3,5"
Shocker.ProЕвгенийВПопробуй в LinqToSql например передать не лямбду, но функцию.В чем проблема? объявить Func или Expression вне метода Linq и передать ему как параметр. Без лямбд.
1. Queryable примет делегат и станет Enumerable , Enumerable не примет Expression. Но оба примут идентичные лямбды.
2. Если Queryable будет транслировать запрос, например sql server`у, то в момент исполнения начнет материться.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157800
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ1. Queryable примет делегат и станет Enumerable , Enumerable не примет Expression.А нефиг Queryable кормить делегатами, он не для тогоЕвгенийВНо оба примут идентичные лямбды.И что с того? Я и не спорил, что лямбда - удобная штука. ЕвгенийВ2. Если Queryable будет транслировать запрос, например sql server`у, то в момент исполнения начнет материться.Не знаю, как у тебя, я прекрасно конструировал выражения самостоятельно и они прекрасно транслировались в SQL
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157802
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как раз-таки совет использовать .ToList(), данный автору топика, вреден по этой причине. В данном случае прокатит, но когда он начнет работать с IQueryable - аукнется.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157808
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВотправляю вас к поделке Сережи Брина с вопросом "что нового в .Net Framework 3,5"


Да Вы шо? Уже .Net 3.5 вышел? ))) А мужики-то и не знали)
Понимаете, тут есть люди которые не только книги прочли, но и вникли в суть и применяли все это на практике.

ЕвгенийВ1. Queryable примет делегат и станет Enumerable , Enumerable не примет Expression. Но оба примут идентичные лямбды.
2. Если Queryable будет транслировать запрос, например sql server`у, то в момент исполнения начнет материться.

Приведите пример, когда без лямбды не обойтись.
Раз уж Вы чужие примеры игнорируете.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157825
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProНе знаю, как у тебя, я прекрасно конструировал выражения самостоятельно и они прекрасно транслировались в SQL
Примерчик можно с вызовом самописной функции?
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157826
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВПримерчик можно с вызовом самописной функции?ты для самообразования или чтобы попридираться?
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157831
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВПримерчик можно с вызовом самописной функции?вот, кстати, нашел простейший пример
var linq и динамические условия
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157838
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxЕвгенийВотправляю вас к поделке Сережи Брина с вопросом "что нового в .Net Framework 3,5"


Да Вы шо? Уже .Net 3.5 вышел? ))) А мужики-то и не знали)
Понимаете, тут есть люди которые не только книги прочли, но и вникли в суть и применяли все это на практике.

Раз вам лень, я для вас нашел.
http://storage.piter.com/upload/contents/978591180518/978591180518_p.pdf
https://msdn.microsoft.com/ru-ru/library/bb332048(v=vs.90).aspx

LINQ появившийся в .net 3.5 невозможен без примесей, лямбд, вывода типов, анонимных типов, появившихся в c# 3.0 специально да LINQ.
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157839
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕвгенийВПримерчик можно с вызовом самописной функции?вот, кстати, нашел простейший пример
var linq и динамические условия
Это динамически построенное дерево выражений, а я просил самописную функцию, типа
Код: c#
1.
2.
3.
4.
static string TS(int i)
        {
            return i.ToString();
        }
...
Рейтинг: 0 / 0
Выполнение LINQ-запроса внутри условного оператора
    #39157844
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВLINQ появившийся в .net 3.5 невозможен без примесей, лямбд, вывода типов, анонимных типов, появившихся в c# 3.0 специально да LINQ.

Вы читаете только самого себя? "Сталин читает Сталина" (с) Или это мантра такая?
Приведите пример. Иначе все это балабольство.
...
Рейтинг: 0 / 0
25 сообщений из 220, страница 3 из 9
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выполнение LINQ-запроса внутри условного оператора
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]