Здесь нет необходимости, как показали другие ответы, но в других случаях, когда вы не используете строку, вы можете выбрать реализацию IEqualityComparer<T>
, а затем использовать перегрузку .Contains
. Вот пример использования строки (опять же, другие ответы показали, что уже есть строковый компаратор, который вы можете использовать, который соответствует вашим потребностям). Многие методы, окружающие IEnumerable<T>
, имеют перегрузки, которые принимают такие компараторы, поэтому полезно узнать, как их реализовать.
class CustomStringComparer : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
return x.Equals(y, StringComparison.InvariantCultureIgnoreCase);
}
public int GetHashCode(string obj)
{
return obj.GetHashCode();
}
}
А затем используйте его
bool contains = hash.Contains("foo", new CustomStringComparer());