C# 角色选择建议的多个方法参数

C# 角色选择建议的多个方法参数,c#,linq,entity-framework,C#,Linq,Entity Framework,我目前的方法是: public static IEnumerable<ApplicationUser> GetListByRole(string role) { using (AppDbContext db = new AppDbContext()) { return db.Users.Where(u => u.Roles.Any(r => r.Role.Name == role) &&

我目前的方法是:

    public static IEnumerable<ApplicationUser> GetListByRole(string role)
    {
        using (AppDbContext db = new AppDbContext())
        {
            return db.Users.Where(u => u.Roles.Any(r => r.Role.Name == role) && u.DateDeleted == null).ToList<ApplicationUser>();
        }
    }
公共静态IEnumerable GetListByRole(字符串角色)
{
使用(AppDbContext db=new AppDbContext())
{
返回db.Users.Where(u=>u.Roles.Any(r=>r.Role.Name==Role)和&u.DateDeleted==null.ToList();
}
}
我希望能够做
GetListByRole(“Admin”,“User”)
GetListByRole(“Admin”)

构造方法参数的最佳方法是什么?我是否使用字符串[]?如果是这样,我将如何更改LINQ查询


谢谢

您可以使用
包含
方法:

public static IEnumerable<ApplicationUser> GetListByRole(params string[] roles)
{
    using (AppDbContext db = new AppDbContext())
    {
        return db.Users
                .Where(u => roles.Contains(u.Role.Name) && 
                       u.DateDeleted == null)
                .ToList<ApplicationUser>();
    }
}

public static IEnumerable允许您在不显式创建数组的情况下传递角色名称。但是您应该知道,它还允许您传递
0
参数..

谢谢!“params”关键字是什么意思。在我上面的示例中,u.Roles是一个ICollection,您使用它就像使用单个对象一样。有什么想法吗?