如何在ICollection <T>中获取项目的索引

Ayo*_*ina 1 c# linq collections indexer c#-4.0

我有这个车的清单

ICollection<Cars> Cars
Run Code Online (Sandbox Code Playgroud)

我也有一个汽车对象,我知道在ICollection中如何获得列表中汽车的索引/位置?我需要将它添加到字符串列表中

这是我到目前为止:

var index = cars.Where(b=> b.Id == car.id).Single().iWantTheIndex
stringList.Add(index)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ser*_*rvy 8

如果你想使用索引集合,那么你应该使用IList<T>,而不是ICollection<T>.一个ICollection<T>东西,你可以枚举,添加和删除物品,并获得的计数,仅此而已.An IList<T>是一个集合,其中的项目按指定顺序排列,可以根据它们在列表中的位置进行访问.

因为a ICollection<T>不一定代表有序集合,所以你无法获得项目的有意义的"索引".物品不一定位置.