2014-10-26 59 views
2

我很好奇,如果我忽略了一些顯而易見的事情: 我經常使用List<T>,我經常需要檢查它是否包含任何值。我打電話List<T>.Count()查看計數是否大於0.這看起來像是一個昂貴的操作,只是想要查看它是否包含任何值。檢查列表<T>是否具有任何值而不調用Count?

有沒有一些被忽視的方法來檢查這個? A IsEmpty()種事情?

回答

4

這感覺就像是一個昂貴的操作,只是想要 看看它是否包含任何值。

別擔心,.Count()擴展方法將回退到.Count屬性,如果下屬類型支持它。

當然,如果在編譯時你有一個IList<T>那麼你最好直接使用.Count屬性。但是如果您只有IEnumerable<T>(其具體實現恰巧是List<T>),則可以使用.Count()擴展方法,而不會出現任何性能問題。

7

您可以使用

list.Any() 

但這種操作是一樣便宜,當你實際處理的列表。 如果它是一個實現IEnumerable但不是IList的集合,使用Any會更便宜。

相關問題