Когда необходимо отслеживать содержимое строки во время цикла, что является лучшей альтернативой StringBuilder? [закрыто ⇐ C#
Когда необходимо отслеживать содержимое строки во время цикла, что является лучшей альтернативой StringBuilder? [закрыто
Я понимаю значительные преимущества использования StringBuilder во многих обстоятельствах (вместо многократного объединения строки снова и снова), но, скажем, я нахожусь в цикле, который требует от меня на каждом круге оценивать текущее содержимое строки? Я предполагаю, что StringBuilder здесь бесполезен, поскольку он предполагает повторное использование StringBuilder.ToString(); что противоречит преимуществам StringBuilder.
Что, по вашему мнению, является наиболее эффективным способом замены StringBuilder в моем примере ниже?
Представьте, что входящий параметр listIncoming следующей функции содержит множество строк, включая две строки, указанные в следующих индексах listIncoming:
Элемент списка 56: «Я хочу поздороваться»
Пункт списка 57: «Мир, я готов к тебе»
Теперь представьте, что этот список отправляется следующей функции; с пониманием того, что если «Hello» когда-либо окажется непосредственно перед «World», то из цикла следует выйти...
частная строка BuildUpStringToReturn(List listIncoming) { StringBuilder sb = новый StringBuilder(); for (int i = 0; я [*] Если не считать неэффективной проверки текущего статуса sb.ToString() на каждой итерации цикла выше, мне интересно, есть ли альтернатива, которую вы могли бы предложить. Если единственной альтернативой является использование строки внутри примера функции, я приму этот ответ. Было бы просто полезно знать.
Возможные альтернативы «обходного пути», которые я рассматриваю (оба из которых позволят избежать необходимости в вышеуказанной функции)...
Используйте другие средства, чтобы превратить список в строку (например, «String.Join»)... а затем посмотрите, содержит ли эта строка «Hello World». [*]При заполнении списка убедитесь, что слова «Hello» и «World» никогда не отображаются подряд. [*]Любые другие идеи, которые вы можете предложить.
Я понимаю значительные преимущества использования StringBuilder во многих обстоятельствах (вместо многократного объединения строки снова и снова), но, скажем, я нахожусь в цикле, который требует от меня на каждом круге оценивать текущее содержимое строки? Я предполагаю, что StringBuilder здесь бесполезен, поскольку он предполагает повторное использование StringBuilder.ToString(); что противоречит преимуществам StringBuilder.
Что, по вашему мнению, является наиболее эффективным способом замены StringBuilder в моем примере ниже?
Представьте, что входящий параметр listIncoming следующей функции содержит множество строк, включая две строки, указанные в следующих индексах listIncoming:
Элемент списка 56: «Я хочу поздороваться»
Пункт списка 57: «Мир, я готов к тебе»
Теперь представьте, что этот список отправляется следующей функции; с пониманием того, что если «Hello» когда-либо окажется непосредственно перед «World», то из цикла следует выйти...
частная строка BuildUpStringToReturn(List listIncoming) { StringBuilder sb = новый StringBuilder(); for (int i = 0; я [*] Если не считать неэффективной проверки текущего статуса sb.ToString() на каждой итерации цикла выше, мне интересно, есть ли альтернатива, которую вы могли бы предложить. Если единственной альтернативой является использование строки внутри примера функции, я приму этот ответ. Было бы просто полезно знать.
Возможные альтернативы «обходного пути», которые я рассматриваю (оба из которых позволят избежать необходимости в вышеуказанной функции)...
Используйте другие средства, чтобы превратить список в строку (например, «String.Join»)... а затем посмотрите, содержит ли эта строка «Hello World». [*]При заполнении списка убедитесь, что слова «Hello» и «World» никогда не отображаются подряд. [*]Любые другие идеи, которые вы можете предложить.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему безымянное пространство имен является «лучшей» альтернативой статическому? [дубликат]
Anonymous » » в форуме C++ - 0 Ответы
- 60 Просмотры
-
Последнее сообщение Anonymous
-