【发布时间】:2019-03-02 05:08:27
【问题描述】:
我有两个收藏
List<Car> currentCars = GetCurrentCars();
List<Car> newCars = GetNewCars();
我不想使用 foreach 循环或其他东西,因为我认为应该有更好的方法来做到这一点。
我正在寻找更有效的方法来比较这些集合并获得结果:
- newCars 中而不是 currentCars 中的汽车列表
- 不在 newCars 和 currentCars 中的汽车列表
类型 Car 具有 int 属性 Id。
有一个答案,已被删除说 我所说的高效是什么意思:更少的代码、更少的机制和更易读的案例
那么这样想我有什么案例?
什么是更少的代码、更少的机制和更易读的案例?
【问题讨论】:
-
您描述的操作是“设置差异”。如果您需要大量计算集合差异,或者在大型集合上,那么您首先不应该使用 List
。您应该使用 HashSet ,这是一种专门为计算此类差异而优化的数据结构。 -
@Eric Lippert 在我的情况下它是非常小的集合(1-3 项),所以我认为 HashSet
中没有必要。