web-dev-qa-db-ja.com

ICollectionに追加する

現在C#プロジェクトを作成しており、プロジェクトの単体テストを行う必要があります。単体テストに必要なメソッドの1つとして、通常はリストボックスの選択された項目から入力されるICollectionを利用します。

メソッドの単体テストを作成すると、次の行が作成されます

ICollection icollection = null; //Initialise to an appropriate value

このICollectionのインスタンスとコレクションのアイテムを作成するにはどうすればよいですか?

16
Boardy

ICollectionはインターフェースであり、直接インスタンス化することはできません。 ICollectionを実装するクラスをインスタンス化する必要があります。たとえば、List<T>。また、 ICollectionインターフェイス にはAddメソッドがありません-IListまたはIList<T>を実装するものが必要ですそのため。

例:

List<object> icollection = new List<object>();
icollection.Add("your item here");
30
Donut
List<Object> list = new List<Object>();
list.Add(object1);
list.Add(object2);
// etc...

ICollection collection = list;
// further processing of collection here.

一部のコメントに反して、IList<T>は、少なくとも私が知る限り、ICollectionを実装します。

4
Altair

文字列のコレクションがあるとしましょう。コードは次のようになります。

ICollection<string> test = new Collection<string>();
test.Add("New Value");
1
Fischermaen

使用する前に、ICollectionインターフェイスを新しいクラスに継承する必要があると思います。

ICollectionの実装方法

0
Neil Knight

あなたができることは、ICollectionを実装する型を作成し、そこからテストでそれを利用することです。リストまたはコレクションは、オブジェクトのインスタンスを作成するために機能します。別の質問は、リストボックスの項目の種類は何でしょうか。リストまたはコレクションに項目を追加することは、.Add(...)メソッドを使用するだけでかなり簡単です。

List<T> list = new List<T>();
list.Add(item_from_your_list_box);
list.Add(item2_from_your_list_box);

このコレクションで行う必要がある具体的なことはありますか?

0
ShelbyZ