检查列表<;T>;具有任何值,而不调用Count
本文关键字:调用 Count 任何值 lt 列表 gt 检查 | 更新日期: 2023-09-27 18:28:03
我很好奇我是否忽略了一些显而易见的东西:我经常使用List<T>
,并且我经常需要检查它是否包含任何值。我调用List<T>.Count()
来查看计数是否大于0。这感觉像是一个昂贵的操作,只想看看它是否包含任何值。
是否有一些被忽视的检查方法?IsEmpty()
之类的东西?
您可以使用
list.Any()
但当你实际处理一个列表时,这种操作同样便宜。如果它是一个实现IEnumerable但不实现IList的集合,那么使用Any
会更便宜。
这感觉像是一项昂贵的手术,因为只想看看它是否包含任何值。
别担心,如果underline类型支持.Count()
扩展方法,它将回退到.Count
属性。
当然,如果在编译时有一个IList<T>
,那么最好直接使用.Count属性。但是,如果您只有一个IEnumerable<T>
(其具体实现恰好是List<T>
),则可以使用.Count()
扩展方法而不会出现任何性能问题。