ОК, поэтому, предполагая, что у вас есть фактический перечислитель (IEnumerator<byte>
), вы можете использовать цикл while:
var list = new List<byte>();
while(enumerator.MoveNext())
list.Add(enumerator.Current);
var array = list.ToArray();
На самом деле, я бы предпочел повернуть IEnumerator<T>
IEnumerable<T>
:
public static class EnumeratorExtensions
{
public static IEnumerable<T> ToEnumerable<T>(this IEnumerator<T> enumerator)
{
while(enumerator.MoveNext())
yield return enumerator.Current;
}
}
Затем вы можете получить массив:
var array = enumerator.ToEnumerable().ToArray();
Конечно, все это предполагает, что вы используете .Net 3.5 или выше.