würde ich eine Methode, wie das die folgende API hat:C# -Methode akzeptiert ein Prädikat - sieht das gut aus?
//get all users with a role of admin
var users = myRepository.GetUsers(u => u.Role == Role.Admin);
Will etwas wie diese Arbeit?
IList<User> GetUsers(Func<User, bool> predicate)
{
var users = GetAllUsers();
return users.Where(predicate).ToList();
}
Wenn ja, wil ich in der Lage sein, komplexere Prädikate angeben, wie (Pseudo-Code):
myRepository.GetUsers(u => u.CreatedDate is upto 14 days old);
Warum möchten Sie keine IEnumerable von Benutzern zurückgeben? –
Ist IEnumerable vorzuziehen, weil es flexibler ist? – Ben
Ein IList ist ein IEnumerable, ein IEnumerable wird also weniger flexibel sein. Ich denke, der Kommentar wurde vielleicht auf den möglicherweise unnötigen Aufruf von ToList() gerichtet? –