我一直在閱讀LINQ和Dataset classh,我的書指出.NET中的Dataset類實現或是IEnumerable的衍生物(我的書不清楚哪一個)。.NET - 數據集是IEnumerable的衍生物?
在編程的背景下,衍生物是什麼意思?
我查看了MSDN上的Dataset類,它沒有指出它是IEnumerable的衍生物或實現。數據集類和IEnumerable如何關聯?
爲了將來的參考,我該如何找出答案?我錯過了MSDN上的東西嗎?我認爲這將被記錄在案的地方...
謝謝
我一直在閱讀LINQ和Dataset classh,我的書指出.NET中的Dataset類實現或是IEnumerable的衍生物(我的書不清楚哪一個)。.NET - 數據集是IEnumerable的衍生物?
在編程的背景下,衍生物是什麼意思?
我查看了MSDN上的Dataset類,它沒有指出它是IEnumerable的衍生物或實現。數據集類和IEnumerable如何關聯?
爲了將來的參考,我該如何找出答案?我錯過了MSDN上的東西嗎?我認爲這將被記錄在案的地方...
謝謝
它沒有實現IEnumerable
,但它確實實現了IListSource
。 IListSource
有一個方法GetList()
,它返回一個IList
,它實現IEnumerable
。
它意味着什麼,它實現IEnumerable
(或者,你可以得到一個IEnumerable
比如這裏的情況)是,你可以使用下面的結構:
foreach (var item in dataSet.GetList())
{
// Do something with item
}
這是走過去的所有項目的簡單方法(「列舉」項目)。
你如何知道你是否可以做到這一點?大多數時候,這很明顯。包含一組項目的所有內容都應該實現IEnumerable
。隨着時間的推移,你會感覺到這一點。
「衍生物」 威力意味着「繼承自」或「子」,但無論哪種方式這一術語是錯誤的; IEnumerable[<T>]
是一個接口,所以一個類型可能實現這個接口。
同樣,這本書是錯的 - 它並不:
public class DataSet : MarshalByValueComponent, IListSource, IXmlSerializable,
ISupportInitializeNotification, ISupportInitialize, ISerializable
的.Tables
是可枚舉的,但是, DataTableCollection
獲取來自it's base-class:
public class InternalDataCollectionBase : ICollection, IEnumerable
MSDN確實是你的朋友,或在Visual Studio只是 「秀定義」。
出於好奇,哪本書是那個? – 2011-02-04 06:41:26