gpt4 book ai didi

c# - 将 Predicate 转换为 Expression>

转载 作者:太空狗 更新时间:2023-10-29 20:08:15 25 4
gpt4 key购买 nike

可以转换 Predicate<T> to Expression<Func<T, bool>>以某种方式?

我想使用我的 ICollectionView 的过滤器来使用下一个 IQueryable 函数:

public static System.Linq.IQueryable<TSource> Where<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate)

谢谢

最佳答案

是这样的吗?

Predicate<string> predicate = input => input.Length > 0;
Expression<Func<string, bool>> expression = (input) => predicate(input);

您可以为您的 ICollectionView 创建一个扩展 Where 方法,它接受一个谓词,将其转换为这样的表达式,然后调用 Linq 提供的 Where 方法。

public static IQueryable<T> Where(this IQueryable<T> source, Predicate<T> predicate)
{
return source.Where(x => predicate(x));
}

关于c# - 将 Predicate<T> 转换为 Expression<Func<T, bool>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com