如果我忽视了一些明显的东西,我很好奇:
我经常使用List<T>
,我经常需要检查它是否包含任何值。我调用List<T>.Count()
来查看计数是否大于0.这感觉就像一个昂贵的操作,只是想要查看它是否包含任何值。
是否有一些被忽视的方法来检查这个?一个IsEmpty()
类的东西?
答案 0 :(得分:7)
您可以使用
list.Any()
但是当你实际处理一个列表时,这个操作同样便宜。
如果它是一个实现IEnumerable但不是IList的集合,那么使用Any
会更便宜。
答案 1 :(得分:4)
这感觉就像一个昂贵的操作,只是想要执行 看它是否包含任何值。
不用担心,如果底层类型支持.Count()
扩展方法将回退到.Count
属性。
当然,如果在编译时你有一个IList<T>
,那么你最好直接使用.Count属性。但是,如果您只有IEnumerable<T>
(其具体实现恰好是List<T>
),则可以使用.Count()
扩展方法,而不会出现任何性能问题。