以下對IList和IEnumerable做比較
傳統上
IEnumerable<T>代表一串資料集,你只能進行循序的尋訪(iterate over ),像是使用foreach,而IList<T>
則是一個集合,你可以新增或是移除項目。功能上是IList<T>比較強。
如果你有一個訂單物件,裡面包含複數的訂單明細,那訂單明細就要用IList<OrderLine>儲存,這樣才能任意刪除或修改訂單明細
。
LINQ對於IEnumerable則有擴充的功能
你要引進System.Collections.Generic命名空間才有擴充功能 (舊的IEnumerable是System.Collections)
詳細請參考MSDN IEnumerable<T> Interface
可以看到Aggregate, sort , select 一堆擴充功能
這些都可以在 LINQ語法看到,因為LINQ底層就是IEnumerable擴充版
參考
http://stackoverflow.com/questions/376708/ilist-vs-ienumerable-for-collections-on-entities
MSDN IEnumerable 介面 (System.Collections)
沒有留言:
張貼留言