有没有办法按组过滤员工:例如:
List<String> notInGroups = GetNotInGroups();
var list = from p in employees
where p.Group.Name notin(notInGroups)
select p;
有没有办法做这样的事情?
谢谢
你可以做!包含,如:
var list = from p in employees
where !notInGroups.Contains(p.Group.Name)
select p;
无法测试,但不会像这样的工作?
var notInGroups = GetNotInGroups();
var list = from p in employees
where notInGroups.Contains(p.Group.Name) == false
select p;
试试where !notInGroups.Contains(p.Group.Name);
你的WHERE
条款。
你可以做这样的事情..
List<String> notInGroups = GetNotInGroups();
var list = from p in employees
where !(notInGroups.Contains(p.Group.Name))
select p;
List
不是特别适合在集合中搜索以查看它是否包含特定项目的任务,这正是您想要做的。虽然编写代码很容易(已经有很多答案显示如何),但您将从使用可以更有效地搜索的更合适的数据结构中显着受益,例如HashSet
:
var notInGroups = new HashSet<string>(GetNotInGroups());
var list = from p in employees
where !notInGroups.Contains(p.Group.Name)
select p;