c# - 一次将对象从List <T>中拉出多个ID?

标签 c# .net linq list

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

class Group
{
  string Id,
  string Name
}


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

我想将所有Group对象从List<Group>中拉出的List<string>中有一个ID

类似于var groups = groupList.Where(x => x.Id == "id")的东西,但一次有多个ID。

最佳答案

您可以使用类似:

List<string> ids = GetTheIDs();

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


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

关于c# - 一次将对象从List <T>中拉出多个ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15125970/

相关文章:

c# - 将 LinearGradientBrush 转换为颜色

c# - 如何在调用构造函数之前初始化 F# 中的字段?

c# - 碰撞检测代码工作后如何弹回物体?

c# float [] average 失去准确性

c# - 使用 TFS 2017 BuildAgent 构建解决方案时出现错误 CS0234

c# - 使用 linq 检查列表计数是否一致

c# - 在 Entity Framework 中排除所有(启用延迟加载)

c# - 具有相同元素类型和等级的数组类型不相等

.net - WPF 应用程序中的 WCF 命名管道

vb.net - 在 VB.NET 中使用 LINQ 将数据表转换为字典