gpt4 book ai didi

接受谓词的 C# 方法 - 这看起来不错吗?

转载 作者:太空狗 更新时间:2023-10-29 18:05:44 26 4
gpt4 key购买 nike

我想要一个具有以下 API 的方法:

//get all users with a role of admin
var users = myRepository.GetUsers(u => u.Role == Role.Admin);

这样的东西行得通吗?

IList<User> GetUsers(Func<User, bool> predicate)
{
var users = GetAllUsers();
return users.Where(predicate).ToList();
}

如果是这样,我是否能够指定更复杂的谓词,例如(伪代码):

myRepository.GetUsers(u => u.CreatedDate is upto 14 days old);

最佳答案

看起来绝对不错。但是,如果您想将谓词与 LINQ to SQL 之类的东西一起使用,您需要使用:

IList<User> GetUsers(Expression<Func<User, bool>> predicate)

这意味着 lambda 表达式将被转换为表达式树而不是委托(delegate) - 然后该表达式树可以被转换为 SQL。

关于接受谓词的 C# 方法 - 这看起来不错吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206902/

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