Какую версию .NET вы используете? Если это .NET 3.5, я бы просто позвонил ToArray()
и покончил бы с этим.
Если у вас есть неуниверсальный IEnumerable, сделайте что-то вроде этого:
IEnumerable query = ...;
MyEntityType[] array = query.Cast<MyEntityType>().ToArray();
Если вы не знаете тип в этом методе, но вызывающие его методы знают его, сделайте метод универсальным и попробуйте следующее:
public static void T[] PerformQuery<T>()
{
IEnumerable query = ...;
T[] array = query.Cast<T>().ToArray();
return array;
}