从列表中拉出对象<同时被多个Id's

本文关键字:Id 列表 对象 | 更新日期: 2023-09-27 18:01:41

我有一个List<Group>,其中Group是:

class Group
{
  string Id,
  string Name
}

我有一个List<string>,其中包含Id的列表

我想从List<Group>中取出所有在List<string>中具有Id的Group对象

类似于var groups = groupList.Where(x => x.Id == "id"),只是一次有多个Id

从列表中拉出对象<同时被多个Id's

你可以这样写:

List<string> ids = GetTheIDs();
var groups = groupList.Where(x => ids.Contains(x.Id));

也就是说,对于大量的id来说,这将是低效的。如果您有许多ID值,您可能希望将它们放在HashSet<T>而不是List<T>中,因为在这种情况下,Contains()调用将是O(1)而不是O(n)。

var groups = groupList.Where(x => listOfStrings.Contains(x.Id));

其中listOfStrings是你的"我有一个List<string>,其中包含Id的列表"。

var groups = groupList.Where(x => stringList.Contains(x.Id));