2016-04-12 13 views
4

は、私は私のコードで以下のメソッドを持っていると言う:C#のサポート、複数の単一の両方のオブジェクト操作

public bool RemoveItem(Item item) 
{ 
    // Logic to remove a single item 
} 

public bool RemoveItems(List<Item> items) 
{ 
    // Logic for removing multiple items. Running over all items and calling RemoveItem will be inefficient in my case 
} 

public bool AddItem(Item item) 
{ 
    // Logic for adding single item 
} 

public bool AddItems(List<Item> items) 
{ 
    // Logic for adding multiple items 
} 

は、各操作のための複数の方法を持っ予防する方法はありますか?私はそのような方法の多くを持っています。私はどういうわけか、それぞれの方法を1つの方法に組み合わせたいと思っています。そうするための良い方法はありますか?

私は単一の項目でリストを作成することができ、リストをパラメータとして取る方法しかサポートしていませんが、私にとっては醜いようです。

どのように他の人がそれを行うのですか?

+0

インターフェイスを使用すると匿名オブジェクトが役立ちます。 – Hozikimaru

+0

paramsキーワードが機能している可能性があります。 –

答えて

8

あなたはparamsキーワードを使用してメソッドを作成することができます。

public bool AddItems(params Item[] items) 
{ 
    ... 
} 

public bool RemoveItems(params Item[] items) 
{ 
    ... 
} 

これは、あなたがこのようなこれらのメソッドを呼び出すことができます:あなたが1かを持っている場合たびに関係なく、リストを取得する

AddItems(item); 
AddItems(item1, item2, ...); 
or 
AddItems(new Item[] { ... }); 
0

ベター多くのアイテムと1つのfunstionで処理します。

4

あなたのアプローチは正しいです。これは、Add()およびAddRange()があるリストクラスで実装されている方法です。

+0

この例は特に区別する必要があるかもしれませんが、私はMarkItem/s、Changeフィールドおよびそのようなメソッドのような多くのものがあります。 –

関連する問題