Why string handling matters in C Sharp (C#) - Performance Analysis
When working with strings, the time it takes to handle them can change a lot depending on what we do.
We want to understand how the work grows as the string gets longer.
Analyze the time complexity of the following code snippet.
string input = "hello world";
string result = "";
for (int i = 0; i < input.Length; i++)
{
result += input[i];
}
return result;
This code copies each character from one string to another by adding characters one by one.
- Primary operation: Looping through each character and adding it to the result string.
- How many times: Once for every character in the input string.
As the string gets longer, the work to add characters grows faster than just the length.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 55 operations |
| 100 | About 5,050 operations |
| 1000 | About 500,500 operations |
Pattern observation: The work grows much faster than the string length, roughly like the square of the length.
Time Complexity: O(n²)
This means the time to build the new string grows very quickly as the input string gets longer.
[X] Wrong: "Adding characters one by one to a string is fast and grows linearly with input size."
[OK] Correct: Each time you add to a string, a new string is created, copying all old characters again, making the work grow much faster than just the length.
Understanding how string operations grow helps you write code that stays fast even with big inputs, a skill that shows you think about efficiency clearly.
"What if we used a StringBuilder instead of adding characters directly? How would the time complexity change?"