What happens when casting IEnumerable to ICollection
-
02-07-2021 - |
Domanda
Given a case such that:
var collection = myEnumerable as ICollection<MyType>;
What happens under the hood? ICollection
has a count property. Does this casting enumerate the enumerable to get the count or does something more involved happen?
Soluzione
Nothing happens. If myEnumerable
indeed is an ICollection<MyType>
collection
will contain it. Otherwise it will be null
. Simple as that.
Altri suggerimenti
Important point:
When ever you cast IEnumerable
type object to ICollection
it will be referenced typed.
Like, removing Item from the collection will remove the item from the IEnumerable
collection as well.
For Example:
IEnumerable<AnyClass> enumerableObject;
ICollection<AyClass> collectingObject = (ICollection<AnyClass>)enumerableObject;
foreach(var item in collectingObject){
collectingObject.Remove(item);
}
And if you access value of enumerableObject
you will find it updated, with all the value removed.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow