我對這個ICollection的東西很陌生,需要一些關於如何實現IEnumerable和IEnumerator的指導。我已經檢查過微軟文檔,我想我理解那裏所說的(我認爲)。但是當我試圖在我的情況下實施它時,我有點困惑,可能需要一些澄清。在ICollection中實現IEnumerator和IEnumerable
基本上,我宣佈了一個T類,然後是另一個實施ICollection的類Ts。在Ts中,我有一本字典。
從主程序中,我想初始化這樣的類Ts: Ts ts = new Ts(){{a,b},{c,d}};
所以,我的問題是:
1)是否合法?它似乎是編譯器沒有投訴,雖然我還沒有運行測試,因爲我沒有徹底實現IEnumerable和IEnumerator,這引起了我的第二個問題
2)如何實現IEnumerable和IEnumerator?
下面是我的僞代碼來說明我的觀點。
public class T
{
string itemName;
int quantity;
.....
public T(string s, int q)
{
.....
}
}
public class Ts: ICollection
{
private Dictionary<string, T> inventory= new Dictionary<string,T>();
public void Add(string s, int q)
{
inventory.Add(s, new T(s,q));
}
public IEnumerator<T> GetEnumerator()
{
// please help
}
IEnumerator IEnumerable.GetEnumerator()
{
// what is the proper GetEnumerator here
}
...
implement other method in ICollection
}
extract from the main program
public Ts CollectionOfT = new Ts(){{"bicycle",100},{"Lawn mower",50}};
.........
你爲什麼要實現自己的ICollection?爲什麼不使用現有的內置集合之一(如List),或者如果您想添加自定義功能,甚至可以從它們派生出來? –
泛型請..它是2013 :) – nawfal