一些C#集合具有計數並且其中一些具有length屬性。是否有一個thumbrule找出哪一個具有哪些以及爲什麼這種差異?Thumbrule上的集合具有長度或計數屬性 - C#
4
A
回答
7
我說一般Thumbrule將執行以下操作:
Count
是用於與 可變長度的集合,即列表(從ICollection
)Length
爲固定長度的 集合,即數組,或其他 不可變對象,即string
。
UPDATE:
只是爲了闡述Count
從ICollection
來通過,並不總是表示變異,例如(按照Greg Beech的評論)的ReadOnlyCollection<T>
有Count
屬性,但它不是變量,但它確實實現了ICollection
。
也許拇指的更精確的規則是:
Count
表明,一些 實現ICollection
Length
表示不變性。
3
如果類型實現ICollection它將具有Count屬性。另一方面,Length不是標準的,並且被定義爲Array類的屬性,因此所有固定大小的數組也將具有該屬性。
0
正如其他人所說Count
來自ICollection的和Length
是對某些類型的,典型類型是不可變的,例如String
和Array
特別限定。
對我而言,Count
意味着可變性,因爲某些東西的數量可以輕易改變。 Length
感覺更不可變。如果沒有嚴格的措施,給定對象的長度通常不會改變。
另外請記住,在LINQ中定義了擴展方法Count()
,它提供了這兩個屬性的通用接口。 LINQ足夠聰明,能夠儘可能高效地返回Count()(即,如果Count或Length屬性存在,它將調用它們),所以它是一個不錯的選擇。
相關問題
- 1. Java - 具有LinkedHashMap屬性的集合
- 2. 獲取具有屬性的數組的長度
- 3. Backbone.js:視圖或集合可以具有屬性嗎?
- 4. c#訪問所有可用的CSS列表或屬性集合
- 5. 查詢具有內部數組的特定屬性的集合
- 6. 長度屬性
- 7. 具有display:none屬性的jQuery計數div
- 8. 所有集合屬性的計數陣列元件
- 9. 合併具有不同屬性集合的兩個weka實例
- 10. C# - 將多個具有相同屬性的LINQ集合結合起來
- 11. 如何過濾具有反射的任何屬性的集合?
- 12. 數據倉庫設計,多維或具有屬性的一維?
- 13. 只讀集合屬性的類設計
- 14. 一定長度的集合
- 15. 具有集合導航屬性的JSON請求有效內容?
- 16. jQuery長度屬性
- 17. 具有屬性長度的JQuery HasAttribute選擇器
- 18. XmlSerialize具有屬性的自定義集合
- 19. MissingMemberException:'Guid'對象沒有'長度'屬性
- 20. asp.net - 屬性集合屬性
- 21. Cypher匹配具有多個屬性的集合
- 22. 更改DIV集合的顯示屬性Chrome +非線性增長速度
- 23. 如何計算mongo集合中的數組長度?
- 24. 排序具有多個屬性的骨幹集合
- 25. 性能計數器集合
- 26. 按屬性索引的C#集合?
- 27. 具有固定長度的C#
- 28. 尋找具有確定長度的數組的組合
- 29. 查詢具有給定屬性集合的實體的DBPedia
- 30. 計算數組的長度,而無需使用length屬性
我不會說這是對於具有可變長度的集合; `ReadOnlyCollection`顯然是不可變的,並且具有固定的長度,但它具有`Count`屬性。它只是用於實現「ICollection」的任何事情,而不考慮其他行爲。 –
2010-12-01 17:03:42