在linq中过滤并分配给列表

在linq中过滤并分配给列表,linq,linq-to-sql,linq-to-entities,linq-to-objects,Linq,Linq To Sql,Linq To Entities,Linq To Objects,我的名字列表里有一个名字列表 我想过滤它,再过滤一个对象列表“NameObject”。我可以在下面实现,但我想避免for循环,有没有更好的方法来实现这一点 foreach (string name in NamesList) { var find = context.Names.Single(x => x.PersonName == name); NameObject.Add(find); } 您可以使用以下查

我的名字列表里有一个名字列表

我想过滤它,再过滤一个对象列表“NameObject”。我可以在下面实现,但我想避免for循环,有没有更好的方法来实现这一点

foreach (string name in NamesList)
{                               
    var find = context.Names.Single(x => x.PersonName == name);
    NameObject.Add(find);
}

您可以使用以下查询:

NameObject = context.Names.Where(n => NamesList.Contains(n.PersonName)).ToList();