StonedJesus
StonedJesus

Reputation: 397

Check for CompareIgnoreCase in C#

I am a c++ developer and recently shifted to C#. I am developing a WPF application where I need to check for the CASE Sensitive. I had done this in c++ as follows:

// BoardName and Board Version are of tye String
if(m_boardName->compareIgnoreCase("S1010012") == 0)
{   
    m_voltageChannels = redhookChannels;
}
else if(m_boardName->compareIgnoreCase("S1010018") == 0)//For bavaria board
{
    if(m_boardVersion->compareIgnoreCase("001A") == 0 || 
       m_boardVersion->compareIgnoreCase("001B") == 0 || 
       m_boardVersion->compareIgnoreCase("001C") == 0 )
    {
        m_voltageChannels = bavaria1Channels;
    }
    else if(m_boardVersion->compareIgnoreCase("002B") == 0)
    {
        m_voltageChannels = bavaria2Channel;
    }   
}

In my WPF application, I did this:

string redhookboardname = "S1010012";
    string redhookboardnameCase = "s1010012";

    string bavariaboardnameCase = "s1010018";
    string bavaria1boardversion1Case = "001a";
    string bavaria1boardversion2Case = "001b";
    string bavaria1boardversion3Case = "001c";

    string bavariaboardname = "S1010018";
    string bavaria1boardversion1 = "001A";
    string bavaria1boardversion2 = "001B";
    string bavaria1boardversion3 = "001C";

    string bavaria2boardversion = "002B";
    string bavaria2boardversionCase = "002b";

    public void OnChannel()
    {
        if (redhookboardnameCase.Equals(redhookboardname, StringComparison.InvariantCultureIgnoreCase))
        {
            mVoltageStruct = redhookboard;
        }

        else if (bavariaboardnameCase.Equals(bavaria1boardversion1, StringComparison.InvariantCultureIgnoreCase))
        {
            if (bavaria1boardversion1Case.Equals(bavariaboardname, StringComparison.InvariantCultureIgnoreCase)
                || bavaria1boardversion2Case.Equals(bavaria1boardversion2, StringComparison.InvariantCultureIgnoreCase)
                || bavaria1boardversion3Case.Equals(bavaria1boardversion3, StringComparison.InvariantCultureIgnoreCase))
            {
                mVoltageStruct = bavaria1board;
            }
            else if (bavaria2boardversionCase.Equals(bavaria2boardversion, StringComparison.InvariantCultureIgnoreCase))
            {
                mVoltageStruct = bavaria2board;
            }
        } 
    }

[UPDATED CODE]: Can this be achieved like I did above???

Upvotes: 0

Views: 199

Answers (2)

Ashton D'Sa
Ashton D'Sa

Reputation: 31

You can also use string.Compare

if(string.Compare(str1, str2, StringComparison.InvariantCultureIgnoreCase)==0)
{
//equal
}

Upvotes: 0

Habib
Habib

Reputation: 223402

You can use the overload for string.Equals

String.Equals Method (String, StringComparison)

For example:

string str1 = "s101001b";
string str2 = "S101001B";
if (str1.Equals(str2, StringComparison.InvariantCultureIgnoreCase))
{
    //equal
}

You may also see one interesting article: The Turkish İ Problem and Why You Should Care

Upvotes: 1

Related Questions