次の行にifステートメントを書きました
if (value == value1 || value == value2 || value == value3 || value == value4)
//do something
そして、常に 'value ==' の部分を繰り返さなければならないことに悩まされています。私の意見では、これは読みにくくする以外の目的には役立っていません。
上記のシナリオをより読みやすくする次の ExtensionMethod を作成しました。
public static bool IsEqualToAny<T>(this T value, params T[] objects)
{
return objects.Contains(value);
}
今、私は簡単に書くことができます
if (value.IsEqualToAny(value1, value2, value3, value4))
//do something
これは ExtensionMethod の適切な使用法ですか?
編集:
すべてのすばらしい答えをありがとう。記録のために:私は方法を保持しました。単純に使用できるという提案new []{value1,value2,value3,value4}.Contains(value)
は正しいですが、私はこの種の if ステートメントを左から右に読むことを好みます (これらの値にこの値が含まれている場合ではなく、この値がこれらのいずれかと等しい場合)。各オブジェクトのインテリセンスにもう 1 つのメソッドが表示されることは、私にとっては問題ではありません。