|
Обьединение строк
|
|||
---|---|---|---|
#18+
Добрый день. Есть 3 варианта: 1) StringBuilder.Append 2) Через String.Format 3) через + То что StringBuilder надо использовать при большом количестве объединений строк, это понятно. Но есть еще несколько вопросов: 1) String.Format или обычный плюс при объединении 2 строк предпочтительнее использовать? Есть ли разница? 2) если объединяемых строк скажем 4. И для их объединения используется следующая запись Код: c# 1.
это компилятор понимает как одну операцию? И создает соответсвенно одну копию объекта стринг? или же как 4 операции, и создается 4 новых объектов? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 15:15 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
Che0, 1) string.format() для склейки строк малоэффективен т.к. делает дополнительную работу по поиску шаблонов. Оператор + для сложения двух строк отлично подходит. 2) Компилятор трактует строки особым образом и заменит s1+s2+s3+s4 на вызов String.Concat(s1,s2,s3,s4). В результате мы получим одну строку без промежуточных вариантов. На входе у нас N строк. У каждой Суммируем их длины, выделяем строку нужной длины и копируем по очереди в нее данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 15:34 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
bazile, Спасибо большое ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 15:38 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
Che0, я например допилил малость MemoryStrem добавив всего один метод MemoryStrem.Write(params string[] values); по умолчанию там ставлю UTF-8. как то даже удобнее стало . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 17:42 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
beg-in-er, не понял, а StringWriter чем не угодил? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 17:44 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
cooldeveloperbeg-in-er, не понял, а StringWriter чем не угодил? а вот , чем то не угодил. наверное тем, что когда оно всё в байтах находится, душе как то спокойнее. туда можно много чего забрасывать . не только строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 18:17 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
beg-in-er, а мне непонятно чем StringBuilder не угодил. Создавать поток ради склейки строк это лишние накладные расходы. beg-in-erя например допилил малость MemoryStrem добавив всего один метод MemoryStrem.Write(params string[] values); Приведи реализацию, если несложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 18:41 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
bazileПриведи реализацию, если несложно. Код: 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.
иногда просто редактируешь строки, и особо не нужно их переводить в строковый формат. пусть в байтах и лежат. так оно вроде быстрее ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 19:05 |
|
Обьединение строк
|
|||
---|---|---|---|
#18+
beg-in-ercooldeveloperbeg-in-er, не понял, а StringWriter чем не угодил? а вот , чем то не угодил. наверное тем, что когда оно всё в байтах находится, душе как то спокойнее. туда можно много чего забрасывать . не только строки. Бред какой-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 19:16 |
|
|
start [/forum/topic.php?fid=20&fpage=159&tid=1404507]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 165ms |
0 / 0 |