2012-09-18 1 views

Répondre

8

Rien ne se passe. Si myEnumerable est en effet un ICollection<MyType>collection le contiendra. Sinon, ce sera null. Aussi simple que cela.

+1

Merci Daniel. Comment la propriété count sur ICollection est-elle définie? –

+0

Il est déjà là. Ça ne se passe pas. Aucune nouvelle instance n'est créée par la distribution! –

+0

C'est bon alors. Je n'étais pas au courant que mon IEnumerable était en fait une ICollection. Avez-vous un lien qui explique cela plus en détail. Fondamentalement, j'ai affaire à un IEnumerable tout au long et je préfère ne pas énumérer la collection pour obtenir le compte. Casting à ICollection semble résoudre ce problème, il semble juste un peu étrange qu'il ait toujours eu le compte disponible en secret. –

1

Point important:

Chaque fois que vous lancez l'objet de type IEnumerable-ICollection il sera référencé tapée.

Comme, enlever article de la collection supprimera l'élément de la collection IEnumerable ainsi.

Exemple:

IEnumerable<AnyClass> enumerableObject; 

ICollection<AyClass> collectingObject = (ICollection<AnyClass>)enumerableObject; 

foreach(var item in collectingObject){ 

collectingObject.Remove(item); 

} 

Et si vous accédez à la valeur de enumerableObject vous trouverez à jour, avec toute la valeur supprimée.

Questions connexes