How does one compare strings in C#?

In the past, you had to call .ToString() on the strings when using the == or != operators to compare the strings’ values. That will still work, but the C# compiler now automatically compares the values instead of the references when the == or != operators are used on string types. If you actually do want to compare references, it can be done as follows: if ((object) str1 == (object) str2) { … } Here’s an example showing how string compares work:

using System;
public class StringTest
{
    public static void Main(string[] args)
    {
        Object nullObj = null; Object realObj = new StringTest();
        int i = 10;
        Console.WriteLine(\"Null Object is [\" + nullObj + \"]\n\"
            + \"Real Object is [\" + realObj + \"]\n\"
            + \"i is [\" + i + \"]\n\");
            // Show string equality operators
        string str1 = \"foo\";
        string str2 = \"bar\";
        string str3 = \"bar\";
        Console.WriteLine(\"{0} == {1} ? {2}\", str1, str2, str1 == str2 );
        Console.WriteLine(\"{0} == {1} ? {2}\", str2, str3, str2 == str3 );
    }
}

Output:

Null Object is []
Real Object is [StringTest]
i is [10]
foo == bar ? False
bar == bar ? True
Tags:
Hot on Web:


About author