|
инициализация в if
|
|||
---|---|---|---|
#18+
допустим вот, если взять пример из мсдна: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
а допустим, мне вот это: var expr = from c in customers where c.City == "London" select c; нужно в иф засунутть., или в switch получится что-то вроде if(что-то там) { var expr = from c in customers where c.City == "London" select c; } else { var expr = from c in customers where c.City == "Moscow" select c; } Как мне сделать, чтобы "var expr" до ифа объявить? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 14:00 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
А как тогда явно Ienumerable <T>? Если например выражение возвращает интежер и стринг select new { type_int, type_string } ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 14:53 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_KartmannА как тогда явно Ienumerable <T>?Да. Или IQueryable<T> если это LINQ-to-SQL. Erik_KartmannЕсли например выражение возвращает интежер и стринг select new { type_int, type_string }От анонимных классов придётся отказаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 14:55 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
авторОт анонимных классов придётся отказаться. ну.. мне хотябы что-то вернуть надо, чтоб дальше хреначить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 15:05 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Алексей КНикак. -1 Func<TSource, bool> predicate = d => ... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 21:09 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
эта что? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 21:17 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
А можно пример, как это применять? я не понял ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 21:28 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
http://msdn.microsoft.com/ru-ru/library/bb549151%28v=VS.90%29.aspx и как это спасёт отца русской демократии? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2011, 21:37 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУАлексей КНикак. -1 Func<TSource, bool> predicate = d => ...Нужен пример кода с анонимным классом, решающий проблему ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 06:43 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_KartmannА как тогда явно Ienumerable <T>? Если например выражение возвращает интежер и стринг select new { type_int, type_string } Я сделал так: IEnumerable<result> ret; а result - это класс, который содержит только type_int, type_string . Без класса вообще можно явно определить эти инт и стринг? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 08:37 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_KartmannБез класса вообще можно явно определить эти инт и стринг?Собственно, создавая класс Вы явно определяете тип результата запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 08:40 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Та я знаю. Просто не понятно, всегда в таких случаях создавать класс? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 08:41 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_KartmannТа я знаю. Просто не понятно, всегда в таких случаях создавать класс?Как минимум в случаях, когда нельзя использовать анонимный класс. Если есть возможность использовать анонимный класс - явно описывать класс наверное не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 08:43 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
не.. ну-помоему это немного извращение . нет? А Вы поняли, что имел в виду МСУ ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 08:45 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_Kartmannне.. ну-помоему это немного извращение . нет?Я бы назвал это недостатком. Это, пожалуй, единственный недостаток LINQ по сравнению с SQL (не считая корявого left join) - нет возможности обращения к анонимным классам за пределами области видимости места, где он "сгенерирован". Надеюсь, авторы C# одумаются и добавят в будущем такую возможность. Erik_KartmannА Вы поняли, что имел в виду МСУ ?Мне кажется, он не понял задачу. Или мы его не поняли. :-) Не будем гадать, подождём от него примера. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 08:55 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Алексей КНужен пример кода с анонимным классом, решающий проблему ТС. Erik_Kartmann Код: plaintext 1.
Алексей, хоть убейте, не вижу тут анонимного класса. Erik_KartmannА Вы поняли, что имел в виду МСУ ? Код: plaintext 1. 2. 3.
Алексей КМне кажется, он не понял задачу. Или мы его не поняли. :-) Не будем гадать, подождём от него примера. :-) Второе :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 09:05 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Алексей КНужен пример кода с анонимным классом, решающий проблему ТС. Во-вторых, никто нам не запрещает создать свой предикат для анонимного класса. Вот пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Леша, что скажете? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 09:18 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУЛеша, что скажете? :) Соответственно, в количестве предикатов нас никто не ограничивает :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 09:27 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Добивая лопатой наших друзей из Новосибирска, хочется вспомнить про динамические предикаты, веяние 4-го фреймворка :) Код: plaintext 1. 2. 3. 4. 5.
P.S. Лично я не сторонник такого подхода, так как теряется контроль имен и контроль типов. Но зато имеем один единственный предикат, а не сотню. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 09:48 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
а без Ранге как можно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:05 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУАлексей КНужен пример кода с анонимным классом, решающий проблему ТС. Во-вторых, никто нам не запрещает создать свой предикат для анонимного класса. Вот пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Леша, что скажете? :)Не удовлетворяет условиям поставленной задачи. ТС хочет использовать анонимный класс за пределами области его видимости. В Вашем примере это не так. ЗЫ: Я понимаю, что можно изменить постановку задачи и привести всё к какому-то такому виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:18 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУP.S. Лично я не сторонник такого подхода, так как теряется контроль имен и контроль типов. Но зато имеем один единственный предикат, а не сотню.Оно того не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:19 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_Kartmann Код: plaintext 1.
а без Ранге как можно ? Чё? ) Алексей КНе удовлетворяет условиям поставленной задачи. ТС хочет использовать анонимный класс за пределами области его видимости. В Вашем примере это не так. Вы так и не прокомментировали это: МСУАлексей, хоть убейте, не вижу тут анонимного класса. ТС работает с типизированной сущностью. Во-вторых, где было сказано про "пределами области его видимости"? Еще раз чистаем начальный вопрос: Сабжист Код: plaintext 1. 2. 3. 4.
нужно в иф засунутть., или в switch получится что-то вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Как мне сделать, чтобы "var expr" до ифа объявить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:22 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Лёша, по-моему Вы нереально запутали мальца, сами запутались, еще и меня хотите запутать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:26 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Еще раз, восстанавливаем картину: Алексей КErik_Kartmann Код: plaintext 1. 2. 3. 4.
нужно в иф засунутть., или в switch получится что-то вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Как мне сделать, чтобы "var expr" до ифа объявить? Никак. Алексей, Вы согласны, что не правы? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:29 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
авторЧё? ) с сегодня, 08:37 по сегодня, 08:45 var items = Enumerable.Range(1, 0).Select(d => new { Name = "", Age = 0}); создался var. Без создания вспомогательного класса, структуры, и пр. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:30 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_Kartmann, выйдите из комы. Чё хотите-то? Я на вопрос ответил, как var объявить до начала условия? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:32 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
так.. ребут! А допустим так.. То, что в ифе мне нужно вытащить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
вижу объявление до ифа только таким: Код: plaintext 1.
а в условии тогда: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
потом когда вышли из условий иф эльз - работаем с items . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:47 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_Kartmann, чтобы Вас однозначно понимали, сделайте тестовый работающий пример, а не эти ошметки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 10:57 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУТС работает с типизированной сущностью.Из прочтения вышенаписанного мне так показалось. В противном случае вопрос про var не имеет смысла. :-) МСУВо-вторых, где было сказано про "пределами области его видимости"?ТС пишет: "Как мне сделать, чтобы "var expr" до ифа объявить?" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 11:08 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Алексей КИз прочтения вышенаписанного мне так показалось. В противном случае вопрос про var не имеет смысла. :-) Почему? ) Алексей КОт анонимных классов придётся отказаться. Почему? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 13:13 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУПочему? )Теперь это уже не важно. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 13:43 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУErik_Kartmann, чтобы Вас однозначно понимали, сделайте тестовый работающий пример, а не эти ошметки. не знаю. придумывал, придумывал. в итоге нашёл чей-то. Код: c# 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
Код: c# 1. 2. 3. 4. 5. 6.
вопрос собственно тот же. как мне вне ифа работать с результатом тот, что в ифе ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 15:32 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_Kartmann, я про предикаты кому рассказывал, стене? Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 17:37 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Да там у вас какие-то бои динозавров были. я думал это не мне. Ну ладно. щяс позырю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 17:55 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_KartmannДа там у вас какие-то бои динозавров были. Та какие там бои, просто рассказал одному паре с востока, что не нужно-таки наезжать на анонимные типы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 17:58 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
МСУ Код: c# 1.
Код: c# 1.
... если быть точным. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 18:01 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
знаю, вы меня зачморите.. Но всё равно вот вопрос. Enumerabe<string> = блаблабла что-нибудь.Select(x=>x.string_type_field) //return string А как студия генерит ИЕнумирейблы, где линкю возвращает, например: var query = блаблабла что-нибудь.Select(x=> new{x.string_type_field, x.int_type_field});// string и int в отладчике, если посмотреть - там ересь какая-то Я сам могу такое объявить вручную? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 18:14 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_KartmannЯ сам могу такое объявить вручную?Ну выяснили уже: IEnumerable<T> (или IQueryable<T>). Но от анонимного класса придётся отказаться. МСУ предлагает способ как избавится от if-а, из-за которого сужается область видимости результата запроса с анонимным классом. Попробуйте различные варианты и выберите наиболее подходящий. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 19:14 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
авторНо от анонимного класса придётся отказаться. в пользу собственными руками созданного ж ? Просто не понятно, что там студия делает в таких случаях, когда var объявляется, а селект содержит нью , и просто фигурные скобки, с перечислением полей. Она что? во время компиляции\или чего-то такого свой класс создаёт где-то, а потом как-то подставляет ? про предикаты я понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 19:30 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
http://msdn.microsoft.com/ru-ru/library/bb397696.aspx нашёл. Теперь всё более-менее понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 19:33 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3.
пример сейчас попробую напечатать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 20:00 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Да вариантов вагон. Приведу пример с if-ом. join длинно писать. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 20:07 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Код: c# 1.
мм.. если использовать в линкю то сиквел это не отправится же на сервер? Ну тогда, да. зо гуд! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 20:14 |
|
инициализация в if
|
|||
---|---|---|---|
#18+
Erik_Kartmann Код: c# 1.
мм.. если использовать в линкю то сиквел это не отправится же на сервер? Ну тогда, да. зо гуд!Пока не вызовите ToList(), ToArray(), First() и т. п. - не отправит. Будет естественным образом "накапливать" вложенные запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 20:17 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1350538]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 175ms |
0 / 0 |