IDictionary自己的实现IEnumerator

本文关键字:IEnumerator 实现 自己的 IDictionary | 更新日期: 2023-09-27 18:08:11

嗨,我尝试implemets 2 keys Dictionary,当我编译这段代码时,会给我一个消息:并非所有代码路径都返回System.Collections.IEnumerable.GetEnumerator((中的值。我尝试在很多地方添加return语句,但没有效果。有什么想法吗?

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();
    }

IDictionary自己的实现IEnumerator

第二个GetEnumerator方法的主体应该是:

return GetEnumerator();

return非常重要。