【发布时间】:2015-12-25 22:56:08
【问题描述】:
我有 2 个列表。首先是具有 int 属性 ID 的对象列表。另一个是整数列表。
我需要比较这两个列表并将对象复制到一个新列表中,其中仅包含基于 ID 在两个列表之间匹配的对象。现在我正在使用 2 个 foreach 循环,如下所示:
var matched = new list<Cars>();
foreach(var car in cars)
foreach(var i in intList)
{
if (car.id == i)
matched.Add(car);
}
这似乎会很慢,因为它会多次迭代每个列表。有没有办法在不使用这样的 2 个 foreach 循环的情况下做到这一点?
【问题讨论】:
-
你能有重复的整数吗?你能有相同ID的重复汽车吗?遇到这种情况应该怎么办?
-
我永远不会在任何一个列表中出现重复项,不会。
-
那么我会建议使用
HashSet<int>提出与 Jamiec 的答案非常接近的内容。