Dot-Net

IEnumerable<T> 與 IReadOnlyList<T>

  • June 1, 2015

IEnumerable&lt;T&gt;選擇vsIReadOnlyList&lt;T&gt;作為返回參數類型或輸入參數類型有什麼區別?

IEnumerable&lt;T&gt;提供.Count.ElementAt這是由IReadOnlyList&lt;T&gt;

IEnumerable&lt;T&gt;表示某些數據上的只進游標。您可以從集合的開始到結束,一次查看一個項目。

IReadOnlyList&lt;T&gt;表示一個可讀的隨機訪問集合。

IEnumerable&lt;T&gt;更通用的是,它可以表示動態生成的項目、通過網路傳入的數據、來自數據庫的行等IReadOnlyList&lt;T&gt;。另一方面,基本上只表示記憶體中的集合。

如果您只需要按順序查看每個項目一次,那麼IEnumerable&lt;T&gt;這是更好的選擇 - 它更通用。

我建議實際上查看 C++ 標準模板庫 - 他們對各種類型的迭代器的討論實際上很好地映射到您的問題。

引用自:https://stackoverflow.com/questions/27855303