计算列表参数的项目

时间:2017-09-09 02:22:10

标签: c# list linq count

我有这个:

public int Control_list(List<int> items)

我想使用LINQ计算列表中的项目,如果列表为null,则返回0

我试过这个,但它没有通过所有可能出现在项目中的场景

bool isEmpty = !items.Any();
if (isEmpty)
{
    return items.Count;
}
else
{
    return 0;
}

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

如果对象为null,则对Any的调用将不起作用。您需要先进行空检查。在此之后,调用Any是多余的,因为如果Count为false,Any将返回0。

所以,只需使用

public int Control_list(List<int> items)
{
    if (items == null) 
    {
        return 0;
    }
    else
    {
        return items.Count;
    }
}

或(使用conditional operator缩短):

public int Control_list(List<int> items)
{
    return items == null ? 0 : items.Count;
}

答案 1 :(得分:0)

某些样式输入:列表的分类,您也可以传入ilist或ienumerable;)

答案 2 :(得分:-1)

你的情况应该是if(!isEmpty)。

如果你坚持使用linq .Any(),请先检查null:

where deviceReceiptTime Between 1490270439780 and 1490270448888