4

次のような場合を考えます。

var collection = myEnumerable as ICollection<MyType>;

内部で何が起こりますか?ICollectioncountプロパティがあります。このキャストは、カウントを取得するために列挙可能なものを列挙しますか、それとももっと複雑なことが起こりますか?

4

2 に答える 2

9

何も起こりません。myEnumerable確かにある場合はICollection<MyType> collectionそれが含まれます。それ以外の場合はになりますnull。そのような単純な。

于 2012-09-18T09:56:31.900 に答える
1

大事なポイント:

IEnumerable型オブジェクトをキャストするときはいつでもICollection、型付きで参照されます。

同様に、コレクションからアイテムを削除すると、コレクションからもアイテムが削除されます。IEnumerable

例えば:

IEnumerable<AnyClass> enumerableObject;

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

foreach(var item in collectingObject){

collectingObject.Remove(item);

}

そして、あなたがあなたの価値にアクセスするならば、enumerableObjectあなたはそれが更新されて、すべての価値が取り除かれているのを見つけるでしょう。

于 2016-09-29T05:29:46.073 に答える