I have a statement where a string is assigned in the following manner:
for (int i = 0; i < x; i++) 
{
    Foo.MyStringProperty = "Bar_" + i.ToString();
    /* ... */
}
Are there any performance differences between i.ToString() or just plain i, as both are just converted to the (culture invariant?) string equivalent?
I am well aware of the existence of String.Concat(), String.Format, StringBuilder, etc., but for the sake of this case, lets assume I may only use + concatenation.
Thanks in advance.
+ concatenation uses String.Concat anyway - String itself doesn't expose a + operator.
So for example:
int i = 10;
string x = "hello" + i;
is compiled into:
int i = 10;
object o1 = "hello";
object o2 = i; // Note boxing
string x = string.Concat(o1, o2);
Whereas calling ToString directly will avoid boxing and call the Concat(string, string) overload. Therefore the version with the ToString call will be slightly more efficient - but I highly doubt that it'll be significant, and I'd strongly urge you to go with whichever version you feel is more readable.
Just using string + object forces a call to ToString() on the object - it's equivalent to calling it explicitly.
ToString is the default method used to write an object. So, if you use "i" or "i.ToString()" is the same thing.
If you know a little about operator overloading in c++ you can understand how "+" works in this case.
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
public class MainClass
{
    public static void Main()
    {
        int number = 10;
        string msg = "age is " + number + ".";
        msg += " great?";
        Console.WriteLine("msg: {0}", msg);
        String s1 = 10 + 5 + ": Two plus three is " + 2 + 3;
        String s2 = 10 + 5 + ": Two plus three is " + (2 + 3);
        Console.WriteLine("s1: {0}", s1);
        Console.WriteLine("s2: {0}", s2);    }
}
Result: msg: age is 10. great?
s1: 15: Two plus three is 23
s2: 15: Two plus three is 5
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With