C#中Length和Count的區別(個人觀點)


  這篇文章將會很短。。。短到比你的JJ還短,當然開玩笑了。網上有說過Length和count的區別,都是很含糊的,我沒有發現有 文章說得比較透徹的,所以,雖然這篇文章很短,我還是希望能留在首頁,聽聽大家對這個話題的看法,如果不信的話,你還真搜不到類似的文章,反正我是沒搜索到。

  也許有些觀點是錯的,或者不正確的,還請指出;我的觀點是:

  • Length:用於計算連續內存區域的一些“對象”的長度,而使用Count()計算非連續內存塊的對象集合的“個數”;
  • Length是這個集合對象的一個特有的屬性,它 繼承自System.Object;Count()並不是一個屬性,而是一個方法,每一次迭代器指針指向這個對象的后繼(MoveNext()方法),當然你也可以理解為一個單鏈表,所以這就是迭代器為什么不能有下標,因為它根本沒法跳躍式的找地址,那么它的大小是未知的。
  • Length的大小底層是由這個對象集的數據類型和初始化時候定義的大小確定的;
  • 有些人認為先有迭代器,然后才有的長度,長度是建立在迭代器的基礎上的;這是錯誤的,那你可能會反駁:.NET中的基礎數據類型,為什么可以用foreach,那你好好在int上面按一下F12,你會發現,其實:它在內部是Int32這個對象。也就是說,.NET中不存在所謂的基礎數據類型;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM