一次从多个Id中拉出List <t>中的对象?</t>

时间:2013-02-28 01:39:09

标签: c# .net linq list

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

class Group
{
  string Id,
  string Name
}

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

我想将所有Group个对象从List<Group> <{1}}中删除List<string>

var groups = groupList.Where(x => x.Id == "id")这样的东西,除了一次多个Id。

3 个答案:

答案 0 :(得分:7)

您可以使用以下内容:

List<string> ids = GetTheIDs();

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

话虽如此,这对于大量ID来说效率低下。如果您有多个ID值,则可能需要将它们放在HashSet<T>而不是List<T>中,因为Contains()调用将是O(1)而不是O(n)in那种情况。

答案 1 :(得分:2)

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

listOfStrings是您的“我有List<string>,其中包含Id的列表”。

答案 2 :(得分:1)

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