C# Case-Insensitive List.Contains(): No overload for method 'Contains' takes 2 arguments
Got compiler error if we do
list.Contains(stringToSearchDynamic.ToString(), StringComparer.OrdinalIgnoreCase)
But compiles OK if we put actual string
list.Contains(stringToSearch, StringComparer.OrdinalIgnoreCase)
Is this a compiler bug ?
Code:
List<string> list = new List<string>();
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);