5

私は言いたくない:

(trsaz != v1) && (trsaz != v2) && ...

私は次のようなものが欲しい:

trsaz != (v1, v4, v7, v11)

これは可能ですか、それとも他にも何かありますか!=

4

4 に答える 4

12
var badList = new[] { v1, v4, v7, v11 };
var result = !badList.Contains(trsaz);
于 2011-06-01T01:33:33.613 に答える
2
var excludeList = new[] { "v1", "v4", "v7", "v11" };
if(!excludeList.Contains(trsaz))
{
    ...
}
于 2011-06-01T01:34:53.883 に答える
0
var result = (new[] {v1, v4, v7}).Every(o => o != trsaz);
于 2011-06-23T16:39:29.330 に答える
0

実際、私はそのための小さな拡張メソッドを作成することを好みます:

public static bool IsIn<T>(this T obj, params T[] set) {
    return set.Any(el => element.Equals(obj));        
}

それはすべての黒魔術をカプセル化し、あなたの目標であるコードを非常に簡潔にします。

if (!trsaz.IsIn(v1, v4, v7, v11)) {
    // ...
}

特にメカニズムを使用する必要がまったくなく、コードを保守する一部の人々を混乱させる場合は特に、重要でない場合はメカニズムを非表示にすることをお勧めします。

于 2011-06-01T03:25:33.560 に答える