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

时间:2016-04-20 03:40:12

标签: c# if-statement

有没有更好(更好)的方法来编写这个if语句?

Array a =null, b= null, c= null, d= null;
if(a!=null && b!=null && c!=null && d!=null)
{ //// TODO }

2 个答案:

答案 0 :(得分:5)

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

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

尝试here

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

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 */
    }
}

答案 1 :(得分:0)

您可以使用此方案的数组列表:即:

Array a =null, b= null, c= null, d= null;
List<Array> listArray = new List<Array>() { a, b, c, d};
if (listArray.Any(x => x == null))
{
    // array contains null value
}
else { 
// do something
}