温馨提示×

C#如何自定义contains方法逻辑

c#
小樊
83
2024-07-13 12:59:23
栏目: 编程语言

要自定义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方法行为。

0