C# 获取列表<;T>;从列表<;T>;包含列表中的参数匹配的<;int>;

C# 获取列表<;T>;从列表<;T>;包含列表中的参数匹配的<;int>;,c#,C#,我有一个包含一些对象的Id属性的列表。 我有一个列表,其中我需要一个新列表,但只有在列表中Id匹配的对象 如何以最佳性能完成此操作?使用linq: List<MyClass> results = mylist.FindAll(x => listOfIds.Contains(x.ID)); 在HashSet中查找ID要比List 如果需要逐一列举项目,则: IEnumerable<MyClass> results = mylist.Where(x => lis

我有一个包含一些对象的Id属性的列表。 我有一个列表,其中我需要一个新列表,但只有在列表中Id匹配的对象

如何以最佳性能完成此操作?

使用linq:

List<MyClass> results = mylist.FindAll(x => listOfIds.Contains(x.ID));
HashSet
中查找ID要比
List

如果需要逐一列举项目,则:

IEnumerable<MyClass> results = mylist.Where(x => listOfIds.Contains(x.ID));
foreach(MyClass item in results)
{
   // do your work
}
IEnumerable results=mylist.Where(x=>listOfIds.Contains(x.ID));
foreach(结果中的MyClass项)
{
//做你的工作
}
IEnumerable<MyClass> results = mylist.Where(x => listOfIds.Contains(x.ID));
foreach(MyClass item in results)
{
   // do your work
}