要自定義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方法行為。