<p>I have a HQL query that can generate either an IList of results, or an IEnumerable of results. </p>

<p>However, I want it to return an array of the Entity that I'm selecting, what would be the best way of accomplishing that? I can either enumerate through it and build the array, or use CopyTo() a defined array.</p>

<p>Is there any better way? I went with the CopyTo-approach.</p>

Which version of .NET are you using?  If it's .NET 3.5, I'd just call
```
ToArray()
```
and be done with it.
If you only have a non-generic IEnumerable, do something like this:
```
```
IEnumerable query = ...;
MyEntityType[] array = query.Cast<MyEntityType>().ToArray();
```
```
If you don't know the type within that method but the method's callers do know it, make the method generic and try this:
```
```
public static void T[] PerformQuery<T>()
{
    IEnumerable query = ...;
    T[] array = query.Cast<T>().ToArray();
    return array;
}
```
```