title: Case invariant search for a string in an array/list of strings
body: <p>The following code could be used to search in an array / List of strings using LINQ.</p>
  
  <pre><code>String[] someArray
      = { "Test1", "test2", "test3", "TEST4" };
  
  string toCheck = "Test1";
  
  if (someArray.Any(toCheck.Contains))
  {
      // found -&gt; Do sth.
  }
  // or with list 
  
  List&lt;string&gt; someList
      = new List&lt;string&gt;(new string[] { "TEST1", "test2", "test3", "TEST4"  });
  
  if (someList.Any(toCheck.Contains))
  {
      // "Test1" != "TEST1"
  }
  </code></pre>
  
  <p>But how could you do this case invariant?</p>
  
  <p>My approach was to convert the complete list to upper, and then test using contains:</p>
  
  <pre><code>if ((someList.ConvertAll(item =&gt; item.ToUpper()).Any(toCheck.ToUpper().Contains)))
  {
      // found -&gt; Do sth.
  }
  </code></pre>
  
  <p>In this case the original list is not altered.</p>
  
  <pre><code>if ((someList.Select(item =&gt; item.ToUpper()).Any(toCheck.ToUpper().Contains)))
  {
      // works with both
  }
  </code></pre>
  
  <p>Well it works... (also with some language specific things like the turkish 'i' letter... (also we still don't have turkish customers as far as i know.. but who knows if they're are in  future?)), but it seems not very elegant.</p>
  
  <p>Is there a way to do an case invariant comparision if an item is in a list?</p>
  
  <p>Best regards,
  Offler</p>