未验证 提交 e944d821 编写于 作者: C Charles Stoner 提交者: GitHub

Remove IEnumerator<T> from ArrayBuilder.Enumerator (#43121)

上级 0aabcd86
......@@ -69,14 +69,19 @@ public bool Contains(T item)
return _set.Contains(item);
}
public IEnumerator<T> GetEnumerator()
public ArrayBuilder<T>.Enumerator GetEnumerator()
{
return _list.GetEnumerator();
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return ((IEnumerable<T>)_list).GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return _list.GetEnumerator();
return ((IEnumerable)_list).GetEnumerator();
}
public void Clear()
......
......@@ -92,7 +92,7 @@ public bool Remove(T value)
public bool Contains(T value) => _set?.Contains(value) ?? false;
public IEnumerator<T> GetEnumerator()
=> _elements?.GetEnumerator() ?? SpecializedCollections.EmptyEnumerator<T>();
=> _elements is null ? SpecializedCollections.EmptyEnumerator<T>() : ((IEnumerable<T>)_elements).GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
......
......@@ -2,8 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Collections.Generic;
namespace Microsoft.CodeAnalysis.PooledObjects
{
internal partial class ArrayBuilder<T>
......@@ -11,7 +9,7 @@ internal partial class ArrayBuilder<T>
/// <summary>
/// struct enumerator used in foreach.
/// </summary>
internal struct Enumerator : IEnumerator<T>
internal struct Enumerator
{
private readonly ArrayBuilder<T> _builder;
private int _index;
......@@ -35,23 +33,6 @@ public bool MoveNext()
_index++;
return _index < _builder.Count;
}
public void Dispose()
{
}
object System.Collections.IEnumerator.Current
{
get
{
return this.Current;
}
}
public void Reset()
{
_index = -1;
}
}
}
}
......@@ -390,12 +390,12 @@ public Enumerator GetEnumerator()
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return GetEnumerator();
return _builder.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
return _builder.GetEnumerator();
}
internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K> comparer = null)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册