如果语句有更好(更优雅)的写法,该怎么办?
if(string1 == null && string2 == null && string3 == null && string4 == null && string5 == null && string6 == null){...}
如果语句有更好(更优雅)的写法,该怎么办?
if(string1 == null && string2 == null && string3 == null && string4 == null && string5 == null && string6 == null){...}
也许可以使用空值合并运算符(??
):
if((string1 ?? string2 ?? string3 ?? string4 ?? string5 ?? string6) == null){ ;}
如果所有字符串都在一个集合中,你可以使用 Linq:
bool allNull = strings.All(s => s == null);
if(listOfStrings.All(s=>s==null))
至少可以把它分成多行
if(string1 == null
&& string2 == null
&& string3 == null
&& string4 == null
&& string5 == null
&& string6 == null)
{...}
||
而不是 &&
来解决中间的空值问题。 - Shaiju T||
而不是&&
,你只会得到至少一个值为空,而不是所有值都为空。 - juharr如果你创建了下面这样的一个函数:
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);
}
string[] strs = new string[] { string1, string2, string3 };
if(strs.All(str => string.IsNullOrEmpty(str))
{
//Do Stuff
}
如果您不想检查空字符串,请使用strs.All(str => str == null)
。
var myStrings = new List<string>{string1,string2,string3....};
if(myStrings.All(s => s == null))
{
//Do something
}
if (Enumerable.All(new string[] {str1, str2, str3, str4}, s => s == null))
- Jim Mischel嗯,我不知道是否更好或更美好,但是你可以像这样使用IEnumerable.Any方法:
确定序列是否包含任何元素。
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");
}
if (string.Concat(string1, string2, string3, string4, string5).Length == 0)
{
//all null or empty!
}
if (string.IsNullOrEmpty(string1 + string2 + string3 + string4 + string5 + string6)){...}
string.IsNullOrWhiteSpace
来解决上述问题,非常简单。喜欢这种方法。 - kuskmen