diff options
Diffstat (limited to 'csharp/src/ProtocolBuffers')
-rw-r--r-- | csharp/src/ProtocolBuffers/Collections/RepeatedField.cs | 63 |
1 files changed, 6 insertions, 57 deletions
diff --git a/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs b/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs index a09c7954..8375ae0b 100644 --- a/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs +++ b/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs @@ -288,14 +288,12 @@ namespace Google.Protobuf.Collections } } - public RepeatedField<T>.Enumerator GetEnumerator() + public IEnumerator<T> GetEnumerator() { - return new Enumerator(this); - } - - IEnumerator<T> IEnumerable<T>.GetEnumerator() - { - return GetEnumerator(); + for (int i = 0; i < count; i++) + { + yield return array[i]; + } } public override bool Equals(object obj) @@ -467,55 +465,6 @@ namespace Google.Protobuf.Collections } Remove((T)value); } - #endregion - - public struct Enumerator : IEnumerator<T> - { - private int index; - private readonly RepeatedField<T> field; - - public Enumerator(RepeatedField<T> field) - { - this.field = field; - this.index = -1; - } - - public bool MoveNext() - { - if (index + 1 >= field.Count) - { - index = field.Count; - return false; - } - index++; - return true; - } - - public void Reset() - { - index = -1; - } - - public T Current - { - get - { - if (index == -1 || index >= field.count) - { - throw new InvalidOperationException(); - } - return field.array[index]; - } - } - - object IEnumerator.Current - { - get { return Current; } - } - - public void Dispose() - { - } - } + #endregion } } |