SDK*_*SDK 0 c# linq asp.net-mvc
我在asp.net mvc控制器下面有类似的代码...
IEnumerable<object> object = null;
IEnumerable<object1> object1 = null;
object = object1.where(s=>s.IsActive);
If(object.Any())
{
...
}
Run Code Online (Sandbox Code Playgroud)
要么
if(object.Count > 0)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果在"对象"存在的任何数据都将在object.Any()
和object.Count > 0
这两个将返回相同的结果(true
或false
)或两者有什么不同?
拜托,有人可以帮我吗?
Any
会更快,因为(在你的情况下IEnumerable <object>
)只要找到符合条件的第一个元素,它就会返回true.
而Count必须一直到集合的末尾(读取迭代集合)才能得到结果.
Food4Thought:
1.你的将因为收集而抛出异常null
.
2. object1.Where (s => s.IsActive);
将显示编译时异常s.IsActive
因为集合属于object
类型且IsActive
不是对象类中的属性.将其更改为IEnumerable<My_Class_Which_Have_Is_Active_Property>
.