title: Case-Insensitive List.Contains(): No overload for method 'Contains' takes 2 arguments
body: <p>C# Case-Insensitive List.Contains(): No overload for method 'Contains' takes 2 arguments</p>
  
  <p>Got compiler error if we do</p>
  
  <pre><code>list.Contains(stringToSearchDynamic.ToString(), StringComparer.OrdinalIgnoreCase)
  </code></pre>
  
  <p>But compiles OK if we put actual string</p>
  
  <pre><code>list.Contains(stringToSearch, StringComparer.OrdinalIgnoreCase)
  </code></pre>
  
  <p>Is this a compiler bug ?</p>
  
  <p>Code:</p>
  
  <pre><code>List&lt;string&gt; list = new List&lt;string&gt;();
  list.Add("one");
  list.Add("two");
  
  string stringToSearch = "OnE";
  dynamic stringToSearchDynamic = "OnE";
  
  //compiles OK
  bool isContained = list.Contains(stringToSearch, StringComparer.OrdinalIgnoreCase);
  
  
  //Does NOT compile
  isContained = list.Contains(stringToSearchDynamic.ToString(), StringComparer.OrdinalIgnoreCase);
  </code></pre>