c# - How to make array contains case insensitive

Array contains case insensitive
The following asp.net c# example code demonstrate us how can we determine whether an array contains an element by ignoring case programmatically at run time in an asp.net application. .Net framework's Enumerable.Contains() method determine whether a sequence contains a specified element.

Enumerable.Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>) overloaded method allow us to determine whether a sequence contains a specified element by using a specified IEqualityCompararer<T>.

To call this overloaded method, fist we need to specify the source array to locate the searched element. Next, we need to pass the searched element value as parameter of Contains() method to locate it within entire array. We also need to specify an equality comparer to compare values.

In this example code, we uses StringComparer.InvariantCultureIgnoreCase, StringComparer.CurrentCultureIgnoeCase and StingComparer.OrdinalIgnoreCase comparers to compare values by ignoring case (case insensitive).

StringComparer.OrdinalIgnoeCase comparer get a StringComparer object that performs a case-insensitive ordinal string comparison.

Finally, we can determine whether an array contains a value by ignoring case as this way Array.Contains("ValueToSearch", StringComparer.OrdinalIgnoreCase).
array-contains-case-insensitive.aspx

<%@ Page Language="C#" AutoEventWireup="true"%>  
  
<!DOCTYPE html>  
<script runat="server">  
    protected void Button1_Click(object sender, System.EventArgs e)  
    {
        string[] birds = new string[]
        {
            "Brown Pelican",
            "Great White Pelican",
            "Peruvian Booby",
            "European Shag",
            "Guanay Cormorant"
        };

        Label1.Text = "birds array.........<br />";
        foreach (string s in birds)
        {
            Label1.Text += s + "<br />";
        }

        Boolean result = birds.Contains("Guanay Cormorant", StringComparer.CurrentCultureIgnoreCase);
        Label1.Text += "<br />'Guanay Cormorant' bird contains in birds array? " + result;

        // choose any one way
        //Boolean result2 = birds.Contains("gUaNay Cormorant", StringComparer.InvariantCultureIgnoreCase);
        //Boolean result2 = birds.Contains("gUaNay Cormorant", StringComparer.CurrentCultureIgnoreCase);
        Boolean result2 = birds.Contains("gUaNay Cormorant", StringComparer.OrdinalIgnoreCase);
        Label1.Text += "<br /><br />'gUaNay Cormorant' bird contains in birds array? " + result2;

        Boolean result3 = birds.Contains("Flightless Cormorant", StringComparer.CurrentCultureIgnoreCase);
        Label1.Text += "<br /><br />'Flightless Cormorant' bird contains in birds array? " + result3;
    }  
</script>  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <title>c# example - array contains case insensitive</title>  
</head>  
<body>  
    <form id="form1" runat="server">  
    <div>  
        <h2 style="color:DarkBlue; font-style:italic;">  
            c# example - array contains case insensitive
        </h2>  
        <hr width="550" align="left" color="LightBlue" />    
  
        <asp:Label   
            ID="Label1"   
            runat="server"  
            Font-Size="X-Large"  
            >  
        </asp:Label>  
        <br /><br />
        <asp:Button   
            ID="Button1"   
            runat="server"   
            Text="check array contains case insensitive"  
            OnClick="Button1_Click"
            Height="40"  
            Font-Bold="true"  
            />  
    </div>  
    </form>  
</body>  
</html>
More c# examples