32

このifステートメントを書くためのより良い(より良い)方法はありますか?

if(string1 == null && string2 == null && string3 == null && string4 == null && string5 == null && string6 == null){...}
4

8 に答える 8

52

おそらくnull-coalescing operator( ??)を使用します:

if((string1 ?? string2 ?? string3 ?? string4 ?? string5 ?? string6) == null){ ;}

すべての文字列がコレクション内にある場合は、Linq を使用できます。

bool allNull = strings.All(s => s == null);
于 2013-02-20T14:46:28.300 に答える
15

すべての文字列をリストに入れて使用することができます

if(listOfStrings.All(s=>s==null))

少なくとも、複数の行に配置できます

if(string1 == null 
   && string2 == null 
   && string3 == null 
   && string4 == null 
   && string5 == null 
   && string6 == null)
{...}
于 2013-02-20T14:43:47.300 に答える
12

次のような関数を作成した場合:

public static bool AllNull(params string[] strings)
{
    return strings.All(s => s == null);
}

次に、次のように呼び出すことができます。

if (AllNull(string1, string2, string3, string4, string5, string6))
{
    // ...
}

実際には、次のように AllNull() を変更して、任意の参照型で動作するようにすることができます。

public static bool AllNull(params object[] objects)
{
    return objects.All(s => s == null);
}
于 2013-02-20T14:50:16.513 に答える
5
string[] strs = new string[] { string1, string2, string3 };
if(strs.All(str => string.IsNullOrEmpty(str))
{
  //Do Stuff
}

またはstrs.All(str => str == null)、空の文字列をチェックしたくない場合に使用します。

于 2013-02-20T14:43:46.790 に答える
3

nullまたは空をチェックしたい場合は、配列を使用しない別の方法を次に示します。

if (string.Concat(string1, string2, string3, string4, string5).Length == 0)
{
    //all null or empty!
}
于 2013-02-20T14:46:59.713 に答える
3

文字列(リストまたは配列....)のIEnumerableを作成すると、.All()を使用できます。

var myStrings = new List<string>{string1,string2,string3....};
if(myStrings.All(s => s == null))
{
   //Do something
}
于 2013-02-20T14:43:54.230 に答える
2

まあ、それが良い良いかはわかりませんが、 IEnumerableを使用できます。このような任意のメソッド。

シーケンスに要素が含まれているかどうかを判別します。

List<string> list = new List<string>{"string1","string2","string3", "string4", "string5"};
if(list.Any(n => n == null))
{

}

そして、次のようなEnumerable.All()メソッドを使用できます。

シーケンスのすべての要素が条件を満たすかどうかを決定します。

if (Enumerable.All(new string[] { string1, string2, string3, string4, string5 }, s => s == null) )
{
       Console.WriteLine("Null");
}
于 2013-02-20T14:46:50.827 に答える
1

これは同じことをするはずです:

if (string.IsNullOrEmpty(string1 + string2 + string3 + string4 + string5 + string6)){...}
于 2013-02-20T14:46:43.463 に答える