我有一个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。
答案 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));