ICollection and ICollection are actually very different interfaces that unfortunately share a name and not much else.
From https://docs.microsoft.com/en-us/archive/blogs/kcwalina/system-collections-vs-system-collection-generic-and-system-collections-objectmodel
ICollection seems like ICollection, but it’s actually a very different abstraction. We found that ICollection was not very useful. At the same time, we did not have an abstraction that represented an read/write non-indexed collection. ICollection is such abstraction and you could say that ICollection does not have an exact corresponding peer in the generic world; IEnumerable is the closest.