LinqPad で List.Contains() の Regex バリアントを実装するために、このコードを破棄しました。残念ながら、比較を行うためにオブジェクトを作成する必要があり、もちろん静的クラスはインターフェイスを実装できません。比較を行うために別のオブジェクトを作成せずに同じ結果を達成する方法はありますか?
void Main()
{
var a = new List<string>();
a.Add(" Monday ");
a.Add(" Tuesday ");
a.Add(" Wednesday ");
a.Add(" Thursday ");
a.Add(" Friday ");
a.Contains(@"sday\s$", new ListRegexComparer() ).Dump();
}
// Define other methods and classes here
class ListRegexComparer : IEqualityComparer<string>
{
public bool Equals(string listitem, string regex)
{
return Regex.IsMatch(listitem, regex);
}
public int GetHashCode(string listitem)
{
return listitem.GetHashCode();
}
}
編集:
a.Any(s => Regex.IsMatch(s, @"(?i)sday\s$")).Dump()
Chris Tavares と Jean Hominal による、オブジェクトを作成せずにインラインで行う方法です。