我是Java工程师,需要从Java到C#编写相同的解决方案。 现在,我必须重写此示例:
private static final BiPredicate<SomeObject, String> predicate =
(someObject, someId) -> {
if (someId.startsWith("someText")) {
// some logic
return booleanResult;
}
return anotherBooleanResult;
};
BiPredicate是一个功能性接口,具有一个接受两个对象并根据实现返回布尔结果的方法,并且与常规方法相比,它的主要优点是可以在Java Stream中使用,如下所示:
someList.stream().filter(someObject => predicate.test(someObject, someId));
答案 0 :(得分:3)
您可以在C#中使用Func
Func<SomeObject, string, bool> predicate = (someObject, someId) =>
{
if (someId.StartsWith("someText"))
{
// some logic
return booleanResult;
}
return anotherBooleanResult;
};
最后一个通用参数是返回类型,所有其他参数都是传递给方法的参数类型。 这也适用于两个以上的参数。