|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Привет. Сабж. Нужно учесть, что последний символ без завершающей запятой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2014, 18:44 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6.
Вроде оптимизированно, но выглядит как-то не очень красиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2014, 18:47 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ростигай, нормально выглядит. Надо только в конструктор StringBuilder длину строки передать, чтобы он сразу выделил char[] нужной длины. Также последний символ лучше удалять используя StringBuilder. Таком образом кол-во аллокаций будет меньше. Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2014, 19:00 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
bazile, Спасибо ! Действительно так будет гораздо быстрее. Особенно трюк с "sb.Length -= 1". Про это не знал. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2014, 19:02 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ростигай, Код: c# 1. 2.
зачем вам этот бред понадобился? гы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2014, 19:17 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Где-то в степи, Спасибо. В принципе по короче, хотя вряд ли быстрее чем StringBuilder. Тык OleDbCommand так параметры принимает вестимо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2014, 19:20 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
РостигайСпасибо. В принципе по короче, хотя вряд ли быстрее чем StringBuilder. Проверять нужно. По той простой причине, что конкатенация 10 символов, где каждый символ - строка, может быть быстрее, чем в StringBuilder запихнуть 10 символов, и выполнить преобразование в строку. К тому же экономить на спичках смысла нет - пишите код в первую очередь понятным. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 10:44 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Arm79, Как раз, чтобы сделать код понятным и решил завернуть в какую-то функцию. Ибо мне в одну DBF таблицу нужно загнать 17 полей, да и в других таблицах тоже полей много. Получаем строчку "?,?,?..." на кучу параметров. Такой код точно не читабелен. Оставлю со стрингБилдером. Вполне наглядно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 13:57 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
РостигайГде-то в степи, Спасибо. В принципе по короче, хотя вряд ли быстрее чем StringBuilder. Тык OleDbCommand так параметры принимает вестимо :)А воспользоваться OleDbDataAdapter'ом - не судьба? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 14:11 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
sphinx_mvА воспользоваться OleDbDataAdapter'ом - не судьба?...и OleDbCommandBuilder 'ом... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 14:13 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
sphinx_mv, Мне нужно вставить в DBF таблицу несколько строк. Делаю так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
А данные из таблиц я считываю с помощью Dapper'а. Он возвращает IEnumerable<КлассСПолямиОтвета>. Итоговый код читабелен и короток. Чем тут лучше Адаптеры и Датасеты? Я не фанат адаптеров, могу ошибаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 14:53 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ростигай, Наличие такого множества параметров в запросе - это уже неудачный дизайн. Ваши попытки обойтись без ОРМ и сократить строку запроса - несерьезны. В случае поддержки такой системы (имею опыт) предпочтетельнее иметь полный текст запроса, без запуска программы и генерации строки с помощью дополнительных синтаксических функций - для возможности запустить этот запрос в SQL студии, например или в Toad.... Хочу сказать - раз уж вы не используете хибернейт и тому подобное - ну так и не используйте. Ваши синтаксический хардкодинг - MultiplyParams("?,", 17 ) - это плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 15:05 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ростигай, Где тогда функция MultiplyFields("Field{0},", 17) ? :-| ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 15:07 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
D129, Все поля перечислены по именам, и там не Field1, Field2 а нормальные имена - поэтому и не написать под это дело универсальной функции. А вот строчку для параметров да, захардкодил конкретным числом (17). Это читабельно. Нет нужды писать: Код: c# 1. 2.
так ведь наглядней Код: c# 1.
Есть и другие таблички, и там тоже захардкодено создание строчки для параметров. Просто формат этих DBF таблиц не менялся 15 лет, и еще столько же не будет :) Так, что поддержки будет крайне мало. Либо уж все изменится кардинально и уйдет в другие технологии, и тогда все равно код нужно будет переписывать с нуля. Хорошее решение для заданных условий задачи. Все читабельно и кратенько. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 15:26 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ростигайsphinx_mv, Мне нужно вставить в DBF таблицу несколько строк. Делаю так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
А можно сделать как-то вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
РостигайА данные из таблиц я считываю с помощью Dapper'а. Он возвращает IEnumerable<КлассСПолямиОтвета>. Итоговый код читабелен и короток.У Вас в ЭТОМ примере никакого Dapper'а не наблюдается... РостигайЧем тут лучше Адаптеры и Датасеты? Я не фанат адаптеров, могу ошибаться.Все документировано. Все стандартно. Все ОЧЕНЬ универсально. И все - ТОЧНО работает... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 15:50 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ростигай Код: c# 1. 2. 3. 4. 5. 6.
Вроде оптимизированно, но выглядит как-то не очень красиво. Если уж идете таким путем, то я бы сделал так в одну строку: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 14:02 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Все решения какие-то половинчатые и очень медленные. Показать вам нормальный и сверхбыстрый вариант? Смотрите: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 15:25 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ну, сейчас свеном на трехколесном лисапеде с квадратными колесами всех порвет... как тузик грелку... cdtyjvВсе решения какие-то половинчатые и очень медленные. Показать вам нормальный и сверхбыстрый вариант? Смотрите: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 17:34 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Вообще, по моему скромному, странная какая-то затея - морочиться оптимизацией генерации dml-строчки для запроса. Обычно накладные расходы на выполнение этого запроса, каким бы быстрым он ни был, на порядок больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 17:52 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
sphinx_mv , Ну согласитесь, что мое решение самое крутое. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 18:40 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныВообще, по моему скромному, странная какая-то затея - морочиться оптимизацией генерации dml-строчки для запроса. Обычно накладные расходы на выполнение этого запроса, каким бы быстрым он ни был, на порядок больше.Ну учитывая то, что GC в .Net работает катастрофически медленно, а программистов приемлемого уровня, которые хоть краем уха слышали про что-то вроде gcServer раз-два и обчелся, подобного рода оптимизации не выглядят так уж избыточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 18:41 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
cdtyjvНу согласитесь, что мое решение самое крутое. Неплохое, но не самое :-) Я бы назвал это примером избыточной оптимизации. Такие фишки имеют смысл, если в программе постоянно исполняются скрипты с разным количеством параметров. Согласись, нечастое явление? Чем плохо было в ресурсы шаблоны запросов загнать и получить их по идентификатору? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 19:42 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
cdtyjv sphinx_mv , Ну согласитесь, что мое решение самое крутое.Экономить на спичках - ни разу не круто... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 21:53 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Arm79cdtyjvНу согласитесь, что мое решение самое крутое. Неплохое, но не самое :-) Я бы назвал это примером избыточной оптимизации.Не только избыточной, но и преждевременной. Arm79Такие фишки имеют смысл, если в программе постоянно исполняются скрипты с разным количеством параметров. Согласись, нечастое явление?Классов таких приложений - ровно один: универсальный загрузчик данных из одного источника данных в другой. Arm79Чем плохо было в ресурсы шаблоны запросов загнать и получить их по идентификатору?Сгенерировать любым способом непосредственно перед выполнением - и достаточно... Для одноразовой операции совершенно без разницы сколько долей процента экономии времени составляет применение разных способов реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 22:02 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Ох... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 00:35 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
hVosttОх...А то!.. Это ж целую строку склеить!.. Мировая проблема!.. Вопрос выживания человечества!.. Бьются лучшие умы!.. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 02:04 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
"Избыточная" ("преждевременная", premature, как угодно) оптимизация - это понятие относительное. Избыточность определяется по тому, насколько больше времени ушло на ее внедрение по сравнению с решением "в лоб", и насколько это усложнило код (то есть на сколько больше времени будет уходить у команды на понимание этого кода и его правку). Соответственно, то, что для команды высококлассных программистов является нормой, для команды джуниоров будет premature optimization. Так, перфоманс - это мой хлеб. Поэтому я всегда стараюсь писать код эффективно, независимо от того, "спички" это или нет. Кроме того, у меня достаточно высокий уровень. Поэтому я сходу вижу многие вещи, до которых "обычный" разработчик дойдет только через несколько итераций. Конкретно в этом примере, кэширование строк конкретно для меня является простым и естественным решением, которое я вижу сразу. Оно требует на несколько строк кода больше, чем решение "в лоб", при этом практически не увеличивая сложность кода. Поэтому ни для меня, ни для команды, в которой я работаю, это не являлось бы premature optimization. Просто хороший код, не более того. Если же вам лень потратить минуту времени на написание нормального кода, или же ваш уровень не дотягивает - ну тогда да, для вас это будет "преждевременной" оптимизацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 10:25 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
Если класть на оптимизацию - давайте меряцца у кого меньше символов получицца :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 11:56 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
cdtyjv, ты занимаешься ненужной оптимизацией. Как уже правильно отметили задержки при работе с БД нивелируют оптимизированные доли секунды. Лучшим решением было бы использование обычных констант (как уже советовал sphinx_mv 16476844 ) набранных вручную или сгенерированных с помощью T4. P.S. Твой стиль общения и постоянные наезды на .NET-чиков наводит на мысль что здесь ты занимаешься только демонстрацией своего ЧСВ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 14:46 |
|
Какой самый простой способ получить строку из символов "?,?,?,?,..........?" ?
|
|||
---|---|---|---|
#18+
bazileP.S. Твой стиль общения и постоянные наезды на .NET-чиков наводит на мысль что здесь ты занимаешься только демонстрацией своего ЧСВ.У меня нет ни одного повода наезжать на .Net-чиков. Для чего? Единственное, что я делаю - обличаю глупости и несуразности в этой платформе. Но я уже начал относиться к кривоте .Net философски. Я же просто прыгнул на него с Java, где все серьезно, все завязано на эффективность, где не принимают скоропалительных решений, и т.д.. А .Net он просто другой. Он не хватает звезд с неба, не пытается занять нишу высокопроизводительных решений. Это такая игровая площадка, где разработчики из Microsoft задорно упражняются в своих инженерных навыках: Индус Прашан из РедмондаЗапилили что-то новое? Давайте скорее ее релизить, а баги пускай отлавливают прикладные разработчики отлавливают (пример - ReaderWriterLock с лютым багом, вызывающим starvation), если разберутся в документации, на которую че-то время нет (пример - SocketAsyncEventArgs)! Так что я отпустил ситуацию, и сейчас даже начинаю получать удовольствие от разработки на C#. Моя ошибка была в завышенных ожиданиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:11 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402558]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 132ms |
0 / 0 |