私はオブジェクトをオブジェクトにマップするクラスを持っていますが、それはそれらを両方向にマップします。私は今、値を反復処理するカスタムIEnumeratorインターフェイスを実装しようとしています。どのようにIEnumeratorインターフェイスを実装しますか?
public class Mapper<K,T> : IEnumerable<T>, IEnumerator<T>
{
C5.TreeDictionary<K,T> KToTMap = new TreeDictionary<K,T>();
C5.HashDictionary<T,K> TToKMap = new HashDictionary<T,K>();
public void Add(K key, T value)
{
KToTMap.Add(key, value);
TToKMap.Add(value, key);
}
public int Count
{
get { return KToTMap.Count; }
}
public K this[T obj]
{
get
{
return TToKMap[obj];
}
}
public T this[K obj]
{
get
{
return KToTMap[obj];
}
}
public IEnumerator<T> GetEnumerator()
{
return KToTMap.Values.GetEnumerator();
}
public T Current
{
get { throw new NotImplementedException(); }
}
public void Dispose()
{
throw new NotImplementedException();
}
object System.Collections.IEnumerator.Current
{
get { throw new NotImplementedException(); }
}
public bool MoveNext()
{
;
}
public void Reset()
{
throw new NotImplementedException();
}
}
これは私が最初にやったやり方ですが、後でこのオブジェクトの値ごとに使いたいと思います。 –
オブジェクトに対してforeachを使用する必要があるのは、IEnumeratorを返すpubli GetEnumerator()メソッドがあるだけで、オブジェクトはインターフェイスを実装する必要はありませんが、IEnumerableまたはIEnumerableを実装することをお勧めします、あなたは推測することができます;) –
それは私が思ったので、私のエラーは他の場所です。安心していただきありがとうございます。 –