2013-11-28 176 views
0

我有一个静态枚举出于各种原因 - 我发现过滤不起作用 - 它是正确的行为?Linq过滤静态列表

private static IEnumerable<Perms> Perms; 
private IEnumerable<Perms> GetAll() 
{ 
    if (Perms == null || Perms.Count() == 0) 
     { 
      Perms = _repo.GetAllPerms(); 
     } 
    return Perms; 
} 

public IEnumerable<Perms> HasAccess(IEnumerable<string> roles) 
{ 
    var allperms = GetAll().ToList(); 
    return allperms.Where(p => p.RoleName == "CEO"); 
} 

- 这总是不考虑返回where子句的原始列表

+6

'HasAccess'不返回任何东西,你应该在'GetAll'中显示_some条件code_。 –

+0

还要确保'Perms'不是'null'。 –

+0

向我们展示更多的代码请 –

回答

0

愚蠢的我。我需要一个ToList()来调用方法。 Linq被延迟执行。