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