Bird
Raised Fist0
C Sharp (C#)programming~5 mins

String concatenation behavior in C Sharp (C#) - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: String concatenation behavior
O(n²)
Understanding Time Complexity

When we join strings together in C#, the way we do it affects how long the program takes to run.

We want to know how the time to combine strings grows as we add more pieces.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


string result = "";
string[] words = new string[] {"a", "b", "c", "d", "e"};

foreach (string word in words)
{
    result += word;
}
    

This code joins all words in the array into one string by adding each word to the result one by one.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding one string to another inside a loop.
  • How many times: Once for each word in the array.
How Execution Grows With Input

Each time we add a word, the program copies the whole current string and the new word to make a new string.

Input Size (n)Approx. Operations
10About 55 copies (1+2+...+10)
100About 5050 copies
1000About 500,500 copies

Pattern observation: The work grows much faster than the number of words because each addition copies a longer string.

Final Time Complexity

Time Complexity: O(n²)

This means the time to join strings grows roughly with the square of the number of strings.

Common Mistake

[X] Wrong: "Adding strings in a loop always takes time proportional to the number of strings (O(n))."

[OK] Correct: Each addition copies the whole current string, so the work adds up more than just once per string.

Interview Connect

Understanding how string joining works helps you write faster code and explain your choices clearly in real projects.

Self-Check

"What if we used a StringBuilder instead of += inside the loop? How would the time complexity change?"

Practice

(1/5)
1. What does the + operator do when used between two strings in C#?
easy
A. It multiplies the two strings.
B. It subtracts the second string from the first.
C. It joins the two strings into one longer string.
D. It compares the two strings for equality.

Solution

  1. Step 1: Understand the + operator with strings

    In C#, the + operator combines two strings by joining them end to end.
  2. Step 2: Check other options

    Subtracting, multiplying, or comparing strings are not done with +. Those operations use other operators or methods.
  3. Final Answer:

    It joins the two strings into one longer string. -> Option C
  4. Quick Check:

    String + String = Joined String [OK]
Hint: Remember: + joins strings like glue [OK]
Common Mistakes:
  • Thinking + subtracts or multiplies strings
  • Confusing + with comparison operators
  • Assuming + works only with numbers
2. Which of the following is the correct syntax to concatenate two strings str1 and str2 in C#?
easy
A. string result = str1 * str2;
B. string result = str1 + str2;
C. string result = str1 - str2;
D. string result = str1 / str2;

Solution

  1. Step 1: Identify valid operators for string concatenation

    The + operator is used to join strings in C#. Other arithmetic operators like -, *, / are invalid for strings.
  2. Step 2: Confirm syntax correctness

    The statement string result = str1 + str2; correctly concatenates and assigns the result.
  3. Final Answer:

    string result = str1 + str2; -> Option B
  4. Quick Check:

    Use + for string join [OK]
Hint: Use + to join strings, not arithmetic signs [OK]
Common Mistakes:
  • Using - or * instead of + for strings
  • Missing semicolon at end
  • Trying to divide or multiply strings
3. What is the output of this C# code?
string a = "Hello";
string b = "World";
string c = a + ", " + b + "!";
Console.WriteLine(c);
medium
A. Hello, World!
B. Hello World!
C. Hello,World!
D. HelloWorld!

Solution

  1. Step 1: Analyze string concatenation parts

    The code joins "Hello", ", ", "World", and "!" in order, so the result is "Hello, World!".
  2. Step 2: Confirm output of Console.WriteLine

    Console.WriteLine prints the combined string exactly as concatenated.
  3. Final Answer:

    Hello, World! -> Option A
  4. Quick Check:

    Strings + punctuation join as typed [OK]
Hint: Watch spaces and punctuation in concatenation [OK]
Common Mistakes:
  • Missing spaces or commas in output
  • Ignoring punctuation strings
  • Confusing concatenation order
4. Identify the error in this code snippet:
string first = "Good";
string second = "Morning";
string message = first + second;
message += 5;
Console.WriteLine(message);
medium
A. Missing space between first and second strings.
B. Cannot add integer 5 to a string using += operator.
C. Variable 'message' is not declared.
D. Console.WriteLine syntax is incorrect.

Solution

  1. Step 1: Check string concatenation and += usage

    The code concatenates "Good" and "Morning" without space, so message becomes "GoodMorning". Adding 5 converts 5 to string "5" and appends it, resulting in "GoodMorning5".
  2. Step 2: Identify the main issue

    The code runs without error, but the missing space between words is a logical mistake causing output to look wrong.
  3. Final Answer:

    Missing space between first and second strings. -> Option A
  4. Quick Check:

    Check spaces when joining strings [OK]
Hint: Add spaces explicitly when joining words [OK]
Common Mistakes:
  • Assuming += 5 causes error
  • Ignoring missing spaces in output
  • Thinking Console.WriteLine is wrong
5. Given a list of words string[] words = {"apple", "banana", "cherry"};, which code correctly concatenates them into a single comma-separated string using string.Concat?
hard
A. string result = string.Concat(words + ",");
B. string result = string.Concat(words[0] + words[1] + words[2]);
C. string result = string.Concat(words);
D. string result = string.Concat(words[0], ",", words[1], ",", words[2]);

Solution

  1. Step 1: Understand string.Concat usage

    string.Concat can join multiple strings passed as arguments. To add commas, they must be separate arguments.
  2. Step 2: Analyze each option

    string result = string.Concat(words[0], ",", words[1], ",", words[2]); passes each word and commas separately, correctly joining as "apple,banana,cherry". string result = string.Concat(words + ","); tries to add comma to array, invalid. string result = string.Concat(words); joins words without commas. string result = string.Concat(words[0] + words[1] + words[2]); concatenates words without commas inside Concat.
  3. Final Answer:

    string result = string.Concat(words[0], ",", words[1], ",", words[2]); -> Option D
  4. Quick Check:

    Pass each string and separator separately to Concat [OK]
Hint: Pass each string and comma separately to string.Concat [OK]
Common Mistakes:
  • Trying to add commas inside array
  • Passing array directly to Concat without separators
  • Using + inside Concat argument incorrectly