Dot-Net
IEnumerable<T> 與 IReadOnlyList<T>
IEnumerable<T>選擇vsIReadOnlyList<T>作為返回參數類型或輸入參數類型有什麼區別?
IEnumerable<T>提供.Count,.ElementAt這是由IReadOnlyList<T>
IEnumerable<T>表示某些數據上的只進游標。您可以從集合的開始到結束,一次查看一個項目。
IReadOnlyList<T>表示一個可讀的隨機訪問集合。
IEnumerable<T>更通用的是,它可以表示動態生成的項目、通過網路傳入的數據、來自數據庫的行等IReadOnlyList<T>。另一方面,基本上只表示記憶體中的集合。如果您只需要按順序查看每個項目一次,那麼
IEnumerable<T>這是更好的選擇 - 它更通用。我建議實際上查看 C++ 標準模板庫 - 他們對各種類型的迭代器的討論實際上很好地映射到您的問題。