私は次のC#リストコードを持っています、
globalFaiths.AddAll( IEnumerable<Religion> religions )
私はそれをこのように呼びます
globalFaiths.AddAll(new Religion[]{Bahai,Christian,Islam});
C#Bahai,Christian,Islam
の関数に送信するためのショットの方法はありますか?globalFaiths
私は次のC#リストコードを持っています、
globalFaiths.AddAll( IEnumerable<Religion> religions )
私はそれをこのように呼びます
globalFaiths.AddAll(new Religion[]{Bahai,Christian,Islam});
C#Bahai,Christian,Islam
の関数に送信するためのショットの方法はありますか?globalFaiths
次を使用できます。
globalFaiths.AddAll(new[]{Bahai,Christian,Islam});
次のように、 paramsキーワードと配列を使用するようにメソッドを変更した場合:
AddAll(params Religion[] religions)
次に、これを直接呼び出すことができます。
globalFaiths.AddAll(Bahai,Christian,Islam);
ただし、これにはコレクションクラス(globalFaiths
のタイプ)のAPIを変更する必要があります。コードのこの部分を変更することがオプションである場合は、フレームワーク(つまり:)により厳密に一致するため、AddRange
の代わりに使用することを検討することもできます。AddAll
List<T>.AddRange
次のようにメソッドを変更できます。
public void AddAll(params Religion[] religions)
{
// ...
}
あなたはそれをこのように使うことができます:
globalFaiths.AddAll(Bahai, Christian, Islam);
ところで:この変更を行う場合は、Add
1つの宗教のみを渡すこともできるため、メソッドに名前を付けることをお勧めします。
コードを変更できない場合、別のオプションは拡張メソッドです。
public static void Add(this Faiths faiths, params Religion[] religions)
{
faiths.AddAll(religions);
}
確かに、コード内でそのメソッドを1回または2回だけ呼び出す場合は、少しやり過ぎかもしれません。
メソッドを変更できる場合は、次のAddAll
ようにすることができます。
AddAll(params Religion[] religions)
そして、このようなアイテムを追加するよりも:
globalFaiths.AddAll(Bahai,Christian,Islam);