c#中,如何判断一个list容器是否为空呢?

2024-12-21 21:21:59
推荐回答(5个)
回答1:

用hibernate做查询时,返回一个List对象,要判断这个list是否为空,我是用的“==null”来判断的,结果竟然不对,我以为这是hibernate对ArrayList又做了一次封装,但我通过读源码发现这是jdk API原有的特性。


public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}


public ArrayList() {
this(10);
}

通过以上源代码可以看出,new ArrayList()的时候,默认分配了10个null对象,显然再用“==null”这种方法就不能判断了,因此可以通过size()==0或者isEmpty()这两种方式来判断,其实isEmpty就是通过size来判断的。

回答2:

我们通过一个方法得到List集合后,判断这个集合中是否有值
只需要做两个判断就行了,如
IList userList=new Users().GetAll();
if(userList!=null && userList.Count>0)(userList.Count就是获取容器中的个数)
{
这种情况下集合就是有值的。
注意:这里必须先判断是否为null,然后判断Count>0,不然有时会报错的
}

回答3:

判断list.Count == 0
list.Count就是容器中的个数

回答4:

"就是当我直接输入jsp页面的地址时,可以打印出“hehe”"?
不会吧,你这样直接输入一定会抛异常的...

request.getAttribute("SearchList").toString()
这句话的意思是说得到你当前request中的"SearchList"对象
但是只是"object",你要是想用的话得先转一下类型
<% List list = (List) request.getAttribute("SearchList");
if(list.size()==0){
out.println("hehe");
}
%>
如果你直接输入地址,request中没有"SearchList"对象,返回得是个null
你再调用toString()方法一定会抛异常...

回答5:

C#中判断list是否为空 直接使用list.Any()即可