2013年4月21日

IList和IEnumerable的比較

以下對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)

MSDN IList 介面

沒有留言:

張貼留言