4

有没有办法按组过滤员工:例如:

List<String> notInGroups = GetNotInGroups();

    var list = from p in employees 
    where p.Group.Name notin(notInGroups)
    select p;

有没有办法做这样的事情?

谢谢

4

5 回答 5

7

你可以做!包含,如:

var list = from p in employees
where !notInGroups.Contains(p.Group.Name)
select p;
于 2013-03-05T14:25:34.373 回答
2

无法测试,但不会像这样的工作?

var notInGroups = GetNotInGroups();
var list = from p in employees 
           where notInGroups.Contains(p.Group.Name) == false
           select p;
于 2013-03-05T14:26:53.717 回答
1

试试where !notInGroups.Contains(p.Group.Name);你的WHERE条款。

于 2013-03-05T14:27:05.957 回答
1

你可以做这样的事情..

List<String> notInGroups = GetNotInGroups();

var list = from p in employees 
           where !(notInGroups.Contains(p.Group.Name))
           select p;
于 2013-03-05T14:29:29.500 回答
1

List不是特别适合在集合中搜索以查看它是否包含特定项目的任务,这正是您想要做的。虽然编写代码很容易(已经有很多答案显示如何),但您将从使用可以更有效地搜索的更合适的数据结构中显着受益,例如HashSet

var notInGroups = new HashSet<string>(GetNotInGroups());

var list = from p in employees 
    where !notInGroups.Contains(p.Group.Name)
    select p;
于 2013-03-05T14:34:36.303 回答