0

I'm trying to append text to a large amount of strings (in the thousands), and also do some other string manipulations.

However, I have about 60 lines of if/else and string appending and it takes several minutes to go through so many lines of text.

It does several checks, but the main part of it uses:

newstring += appendText.Text + ' ' + inputTextBox.Lines[i];

Is there a better way to do this that makes it faster?

gnat
  • 21,442
  • 29
  • 112
  • 288
user192148
  • 19
  • 2

1 Answers1

1

You are thinking correctly, appending text using plus operator is not optimal. Use StringBuilder for this, especially if conditionals are used:

(code from link above)

StringBuilder sb = new StringBuilder();
      
sb.Append("This is a sentence.");
      
for (int ctr = 0; ctr <= 10; ctr++) {
    sb.Append("This is an additional sentence.");             
}   

Than call sb.ToString(); to show full string.

Note: There are at least 6 ways to concatenate a string in c# (all examples produce "a b"):

Usually, if you use .net 4.6 you will want to use string interpolation for shorter ones, and StringBuilder for longer. Prior to .net 4.6 insted of interpolation, use string.Format().