当然可以。Lambda 表达式是一种简洁的表示方法,用于创建匿名函数。在这个问答中,我们将使用 Lambda 表达式创建一个简单的 EqualityComparer<T>
。
EqualityComparer<T>
是一个用于比较两个对象是否相等的泛型接口。它通常用于自定义对象的比较规则。在这里,我们将创建一个简单的 EqualityComparer<T>
,用于比较两个整数是否相等。
using System;
public class CustomEqualityComparer : EqualityComparer<int>
{
public override bool Equals(int x, int y)
{
return x == y;
}
public override int GetHashCode(int obj)
{
return obj.GetHashCode();
}
}
现在,我们可以使用 Lambda 表达式创建一个简单的 EqualityComparer<T>
,如下所示:
using System;
public class Program
{
public static void Main()
{
IEqualityComparer<int> customEqualityComparer = new CustomEqualityComparer();
// 使用 Lambda 表达式创建一个简单的 EqualityComparer<T>
IEqualityComparer<int> lambdaEqualityComparer = EqualityComparer<int>.Create(
(x, y) => x == y,
obj => obj.GetHashCode()
);
int a = 1;
int b = 2;
// 使用自定义的 EqualityComparer<T> 比较两个整数
bool areEqual = customEqualityComparer.Equals(a, b);
Console.WriteLine($"Are {a} and {b} equal using custom comparer? {areEqual}");
// 使用 Lambda 表达式创建的 EqualityComparer<T> 比较两个整数
areEqual = lambdaEqualityComparer.Equals(a, b);
Console.WriteLine($"Are {a} and {b} equal using lambda comparer? {areEqual}");
}
}
在这个例子中,我们首先创建了一个自定义的 EqualityComparer<T>
,用于比较两个整数是否相等。然后,我们使用 Lambda 表达式创建了另一个 EqualityComparer<T>
,用于比较两个整数是否相等。最后,我们使用这两个 EqualityComparer<T>
比较了两个整数,并输出了结果。
希望这个答案能够帮助您了解如何使用 Lambda 表达式创建一个简单的 EqualityComparer<T>
。如果您有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云