我有以下实体

public class Person
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

并有一个列表List<Person> badGuys
我要做的是从badGuys列表中的所有人中选择

我的代码
context.Persons
    .where(p => !badGuys.Contain(p))
    .ToList()

但我得到一个错误



如何解决这个问题?

最佳答案

您可以创建一个包含坏人ID的数组,并过滤​​掉这些ID(它们是原始类型,因此应该可以使用):

var badGuyIds = badGuys.Select(x => x.PersonId).ToArray();

context.Persons
    .Where(p => !badGuyIds.Contain(p.PersonId))
    .ToList();

10-04 10:38