7

C# の ICollection とは何ですか?

private void SendEmail(string host, int port,
        string username, string password,
        string from, string to,
        string subject, string body,
        ICollection<string> attachedFiles)
4

4 に答える 4

9

インターフェイスは、名前空間内のクラスのICollection<T>基本インターフェイスです。System.Collections.Generic

ICollection<T>インターフェイスは拡張され、 およびIEnumerable<T>によって拡張されます。IDictionary<TKey, TValue>IList<T>

実装は、クラスIDictionary<TKey, TValue>と同様に、キーと値のペアのコレクションです。Dictionary<TKey, TValue>

実装は値のコレクションであり、そのメンバーはクラスIList<T>のようにインデックスでアクセスできます。List<T>

http://msdn.microsoft.com/en-us/library/92t2ye13.aspx

于 2012-06-07T20:01:07.783 に答える
6

ICollection<string>OPが実際に理解しようとしているのは、明らかnew ICollection<string>()に飛ぶつもりはないので、実装するものだと思います。

Micah が指摘したように、List<string>実装しICollection<string>ます。他の機能を知りたい場合は、ILSpy を見て、ICollection<T>型を見つけて分析し、何がそれを実装しているかを確認してください。これが私の結果の一部です

  • 配列セグメント
  • リスト
  • ListT.SynchronizedList
  • リンクされたリスト
  • ソート済みリスト
  • ソートセット

... もっと

また、単純なstring配列も実装しますICollection<string>

于 2012-06-07T21:08:21.387 に答える
1

ICollection はコレクションを表すインターフェイスであり、厳密に型指定されたメンバーも含まれています

そのインターフェースを実装する方法の例を次に示します

http://support.microsoft.com/kb/307484

汎用リストはこのインターフェースを実装します

http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

于 2012-06-07T20:01:50.313 に答える
1

コレクションは、同じタイプ (この例では文字列) を持つオブジェクトのグループです。

ドキュメントから:

言語に固有の構造を利用するために、任意の型のオブジェクトを Object 型の 1 つのコレクションにグループ化できます。たとえば、C# の foreach ステートメント (Visual Basic では for each) は、コレクション内のすべてのオブジェクトが単一の型であると想定しています。

ICollectionは、コレクションのインターフェイス定義です。

于 2012-06-07T20:02:06.167 に答える