Tengo una consulta HQL que puede generar un IList de resultados o un IEnumerable de resultados.
Sin embargo, quiero que devuelva una matriz de la entidad que estoy seleccionando, ¿cuál sería la mejor manera de lograrlo? Puedo enumerarlo y construir la matriz, o usar CopyTo () una matriz definida.
¿Hay alguna forma mejor? Fui con el enfoque CopyTo.
c#
nhibernate
jishi
fuente
fuente

Respuestas:
¿Qué versión de .NET estás usando? Si es .NET 3.5, simplemente llamaría
ToArray()y terminaría.Si solo tiene un IEnumerable no genérico, haga algo como esto:
Si no conoce el tipo dentro de ese método, pero las personas que llaman al método lo conocen, haga que el método sea genérico y pruebe esto:
fuente
object[]uso justoCast<object>. ElIEnumerableno genérico no tiene unToArraymétodo de extensión, por lo que no puede simplemente llamarfoo.ToArray<object>ni nada por el estilo.ToArraymétodo de extensión está en elSystem.Linqespacio de nombres, se cree que sería bueno saberlo :).Pon lo siguiente en tu archivo .cs:
A continuación, podrá utilizar el siguiente método de extensión de System.Linq.Enumerable:
Es decir
fuente
Tengo ganas de reinventar la rueda ...
fuente
ToArray()llamada (a través de laBufferclase interna ) ... aunque si alguien esperaba el "estándar "Copiar comportamiento, se sorprenderían bastante.IEnumerable.ToArray()En caso de que no tengas Linq, lo resolví de la siguiente manera:
Espero eso ayude
fuente