有没有更短的方法来编写这个LINQ构造?

dav*_*ton 1 c# linq asp.net-mvc-4

我需要确定用户是否只是销售人员.我的ASP.NET MVC 4控制器中有以下内容:

    public ActionResult Index() {
        string salespersonCode = null;

        var roles = Roles.GetRolesForUser();
        if(roles.Count() == 1 && roles.Contains(UserRoles.Salesperson.ToString()))
            salespersonCode = User.Name();

        return View(new ProspectIndexViewModel { Prospects = _crmService.GetActiveProspects(salespersonCode) });
    }
Run Code Online (Sandbox Code Playgroud)

用户可能有多个角色.如果用户只有该角色,我想将返回的数据限制为仅属于销售人员的数据.其他三个角色(Manager,Admin和SalesAdministrator)将接收整个列表.谢谢!

slo*_*oth 5

您可以使用All方法.

if(roles.All(r => r == UserRoles.Salesperson.ToString()))
Run Code Online (Sandbox Code Playgroud)

但我发现你的代码没问题......