|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Подскажите, как сделать простую вещь - выполнить LINQ-запрос внутри условного оператора: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Компилятор выдает ошибку - Q_Rec не объявлен, а предварительно объявить этот пресловутый анонимный тип выше моих сил. Есть ли решение этой проблемы (кроме разнесения LINQ-запросов по разным процедурам)? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 23:21 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
А как ты хочешь объявить Q_Rec предварительно, если он РАЗНЫЙ в двух запросах? Делай в двух местах тернарный оператор, но четвертое поле типа придется назвать как-то универсально ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 23:56 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Да без разницы - пусть в первом случае будет Q_Rec1, а во втором Q_Rec2. Пардон, а что такое тернарный оператор? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 00:09 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Да, забыл сказать - я пишу на VB.NET. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 00:11 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Если не затруднит, приведите пример описания для данного конкретного случая (с Q_Rec1 и Q_Rec2) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 00:23 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Я вообще не очень понимаю тогда, что требуется. Если две разные ветки программы, в одной требуется Q_Rec1, а в другой Q_Rec2, то и программа тогда должна продолжаться внутри этих веток, там, где объявлены эти переменные, иначе неясен смысл ветвления, в результате которого получаются два разных результата двух разных типов. Иван215а предварительно объявить этот пресловутый анонимный тип выше моих сил.ну во-первых тут два типа, а не один. И в чем проблема объявить типы не анонимно? Иван215Пардон, а что такое тернарный оператор?If(bar = buz, cat, dog) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 00:35 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
авторИ в чем проблема объявить типы не анонимно? Ну подскажите тогда как объявить тип не анонимно. Я просто пример привел. Реальная процедура слишком большая. Смысл такой - нужно в одной процедуре выполнять разные LINQ-запросы в зависимости от некоторых условий, а потом обрабатывать результаты запросов - в одной процедуре обрабатывать, ветвление нежелательно - тогда придется результаты LINQ-запросов преобразовывать в таблицы DataTable и передавать их в вызывающую процедуру как параметр. Как передавать результат запроса в видепараметра вообще непонятно - ибо как можно передать НЕИЗВЕСТНО ЧТО в виде параметра. Вообще эти дурацкие анонимные типы очень плохая идея. Попробовал я посмотреть тип того, что выдает запрос с помощью Код: vbnet 1.
Такая жуть полезла, офигеть можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 00:56 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Вот написал простой запрос и посмотрел тип результата: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Получаю результат, смотри миниатюру. Вставляю перед запросом описание: Код: vbnet 1.
Компилятор сообщает - недопустимый символ (там где этот инопланетный штрих стоит в обратную сторону наклоненный). Ну и как тип-то описать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 01:23 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Иван215Такая жуть полезла, офигеть можно.м-да. Полезла следующая жуть:Иван215как объявить тип не анонимно.Иван215Как передавать результат запроса в видепараметра вообще непонятноИван215как можно передать НЕИЗВЕСТНО ЧТО в виде параметра.Иван215эти дурацкие анонимные типыИван215анонимные типы очень плохая идеяИван215инопланетный штрих стоит в обратную сторону наклоненны Все это означает, что вообще-то нужно открыть учебник по VB.NET и начать его читать, если даже встает вопрос о том, как объявить тип - а ведь объявление типов - одна из первых глав учебника. Я, конечно, могу что-то подсказать точечно, но толку мало от этого - если в начальных знаниях даже не пробел, а прямо-таки черная дыра. Почитай про типы, про объявление типов, про универсальные (в других переводах "обобщенные" или "дженерики" (на жаргоне)) типы. Попробуй понять суть интерфейсов. Иван215а потом обрабатывать результаты запросов - в одной процедуре обрабатыватьтак если в одной процедуре обрабатывать результат, то зачем тогда пытаться детально объявить какой-то тип (анонимно или явно), если эта детализация впоследствии утрачивается. Ну и объяви переменную Q_Rec как Object и присваивай ей что хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 01:50 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
автор Ну и объяви переменную Q_Rec как Object и присваивай ей что хочешь. Ну, объявил: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
И получил, смотри миниатюру. И прежде чем советовать, неплохо бы самому попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:10 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Теперь про черную дыру и учебники. У меня другой способ обучения - практический. Много, кстати всего уже прочитал. На хрена тогда форумы, пусть все читают учебники. Мне практический совет нужен (озвучен выше). Лекции и чтение морали мне не в профицит. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:13 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
автортак если в одной процедуре обрабатывать результат, то зачем тогда пытаться детально объявить какой-то тип Ну написал же черным по белому - зачем - что компилятор ОШИБКУ НЕ ВЫДАВАЛ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:17 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Господа форумчане, еще раз обращаюсь. Подскажите пожалуйста (дайте практический совет) как сделать так чтобы нижеследующий фрагмент кода не выдавал ошибки компиляции (Q_REC1 и Q_Rec2 - не объявлены) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:31 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
авторЯ, конечно, могу что-то подсказать точечно, но толку мало от этого Можешь подсказать - так подскажи - о том и просьба была. А думать о том, сколько толку от этого будет - не твоя забота. Или ты педагог? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:41 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Иван215У меня другой способ обучения - практический.Иван215зачем - что компилятор ОШИБКУ НЕ ВЫДАВАЛ.То есть нужно не программу нормально работающую сделать, не научиться делать правильно, не разобраться в механизмах работы, не иметь перспективу повышать свою квалификацию. Единственная задача - чтобы компилятор ошибку не выдавал. Иван215На хрена тогда форумыДействительно, школы тоже нафиг не нужны. И правила дорожного движения. Если под машину достаточно быстро не попадешь, то методом тыка можно выяснить, что дорогу лучше переходить, когда на странном столбе с разноцветными лампочками горит зеленая. Ок, учебник читать не будем, как работает Linq не знаем, что такое интерфейс IEnumerable в частности и интерфейсы в принципе - знать не хотим. Итак для чего же нужны форумы? Получается, чтобы за тебя делать ту работу, в которой ты не только не разбираешься (это поправимо, если есть желание), но и не хочешь разбираться (а вот тут уже тупик). Итого: В учебнике есть ответ на твой вопрос. Если бы ты его прочитал, тебе бы не потребовалось обращаться на форум именно с этим вопросом. Но ты предпочитаешь такой вариант - ты ничего не делаешь, мы пишем тебе программу, ты получаешь за нее деньги, нам говоришь "большое спасибо". Прекрасный подход! Почему выдает ошибку? Потому что у Object нет метода Count. Почему я дал совет использовать Object. А ты до этого ничего не говорил про Count. Что теперь делать? Использовать IEnumerable или IQueryable. Что это такое. Ну ё-моё, перепечатывать главы из учебника на форум занятие бессмысленное. Иван215На хрена тогда форумыВот тут есть хороший ответ 16726098 Ах да - мы же не читатели, а там букв много. Ну ладно, тогда кратко - для того, чтобы отвечать на сложные вопросы, а не обучать азам языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:42 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Иван215Господа форумчане, еще раз обращаюсь. Подскажите пожалуйста (дайте практический совет) как сделать так чтобы нижеследующий фрагмент кода не выдавал ошибки компиляции (Q_REC1 и Q_Rec2 - не объявлены) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Именно этот? Вот так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:44 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Иван215Можешь подсказать - так подскажи - о том и просьба была. А ты перечитай сначала. Я даю подсказку - ты следующим шагом упираешься в следующую проблему и так несколько раз. Иван215А думать о том, сколько толку от этого будет - не твоя забота.Так я заранее вижу, что толку не будет, что и доказывают последующие грабли, на которые ты натыкаешься ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 02:48 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
... Повторяю еще раз - РАДИОСТАНЦИЯ НА БРОНЕТРАНСПОРТЕРЕ! Да не работает же. Компилятор ошибку выдает - Q_Rec1 и Q_Rec2 - не объявлены. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 03:31 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Я выполняю запрос: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
В результате получаю некий объект - Q_Rec1. И выходит следующее - я не могу (и пока ответа не получил, все подсказки какие-то) определить тип ЭТОГО ОБЪЕКТА, чтобы взять и перед запросом написать оператор: Код: vbnet 1.
Нет ребята, это полное дерьмо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 03:51 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Иван215Нет ребята, это полное дерьмо. Согласен, и нет ни малейшего желания в него погружаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 09:21 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Вот так все работает. Тестовый пример: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 09:43 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Иван215, Навига тебе if? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 11:28 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
Спасибо Александр, проверил - все работает. Не знаю как Вас благодарить - Вы залатали черную дыру в моих познаниях. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 11:39 |
|
Выполнение LINQ-запроса внутри условного оператора
|
|||
---|---|---|---|
#18+
авторНавига тебе if? Я так понял вопрос звучит так: Нафига тебе If? Отвечаю: Надо Федя, надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 11:41 |
|
|
start [/forum/topic.php?fid=17&msg=39155157&tid=1349432]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 300ms |
0 / 0 |