在if语句中检查多个数组是否为null

Yog*_*esh 1 c# if-statement

是否有更好(更好)的方式来编写这个if语句?

Array a =null, b= null, c= null, d= null;
if(a!=null && b!=null && c!=null && d!=null)
{ //// TODO }
Run Code Online (Sandbox Code Playgroud)

mir*_*han 5

您可以创建一个adhoc集合,然后对其执行Linq All查询:

if(!(new [] {a, b, c, d}).Any(_ => _ == null)) {
    Console.WriteLine("None of the arrays are null");
}
Run Code Online (Sandbox Code Playgroud)

在这里尝试一下.

编辑:我刚刚看到你的评论.看起来你想在很多不同大小的地方使用它,所以你可以这样做:

static bool areNoneNull(params object[] things) {
    return !things.Any(_ => _ == null);
}

public static void Main(String[] args) {
    if(areNoneNull(a, b, c, d)) {
        /* Do stuff */
    }

    if(areNoneNull(x, y)) {
        /* Do different stuff */
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 解决方案很好,可能你可能会考虑使用`Any`来处理这种情况`thing.Any(_ => _ == null)`,如果我们发现一个不是_null _,我们并不需要验证所有项目. (2认同)