要自定义Contains方法的逻辑,您可以使用扩展方法来创建一个新的Contains方法。以下是一个示例代码,演示如何自定义Contains方法逻辑:
using System;
using System.Collections.Generic;
public static class CustomExtensions
{
public static bool CustomContains<T>(this IEnumerable<T> source, T value, Func<T, T, bool> comparer)
{
foreach (T item in source)
{
if (comparer(item, value))
{
return true;
}
}
return false;
}
}
class Program
{
static void Main()
{
List<string> fruits = new List<string> { "apple", "banana", "orange" };
bool containsApple = fruits.CustomContains("apple", (x, y) => x.Equals(y, StringComparison.OrdinalIgnoreCase));
bool containsPineapple = fruits.CustomContains("pineapple", (x, y) => x.Contains(y));
Console.WriteLine("Contains apple: " + containsApple);
Console.WriteLine("Contains pineapple: " + containsPineapple);
}
}
在上面的示例中,我们创建了一个名为CustomContains的扩展方法,它接受一个IEnumerable和一个值,以及一个用于比较元素的自定义比较器。在Main方法中,我们使用这个自定义Contains方法来检查在fruits列表中是否包含"apple"和"pineapple"。您可以根据需要自定义比较器的逻辑来实现不同的Contains方法行为。