2
嗨我嘗試實現2鍵字典,當我編譯此代碼給我的消息:並非所有的代碼路徑在System.Collections.IEnumerable.GetEnumerator()返回值。我嘗試在許多地方添加return語句,但它不起作用。任何想法有什麼不對?IDictionary自己的實現IEnumerator
public IEnumerator<MultiKeyStruct<PK,SK,V>> GetEnumerator()
{
foreach (var primaryKey in primarykeys)
{
foreach (var secondaryKey in primarykeys[primaryKey.Key])
{
var returnItem = new MultiKeyStruct<PK,SK,V>(primaryKey.Key, secondaryKey.Key, secondaryKey.Value);
yield return returnItem;
}
yield return default(MultiKeyStruct<PK, SK, V>);
}
yield return default(MultiKeyStruct<PK,SK,V>);
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
GetEnumerator();
}
在附註上;很確定你想刪除第一個塊中的第二個和第三個yield return語句;你只需要一個,最內層的實際返回實物的那個。另外兩個將在您的序列中放置空白項目。 – Servy 2013-04-08 20:05:46