作者:和谐啄木鸟 | 2023-09-03 11:03
我有一个HQL查询,可以生成IList结果,或IEnumerable结果.
但是,我希望它返回我正在选择的实体数组,实现它的最佳方法是什么?我可以通过它枚举并构建数组,或者使用CopyTo()定义的数组.
有没有更好的方法?我选择了CopyTo方法.
1> Jon Skeet..:
您使用的是哪个版本的.NET?如果它是.NET 3.5,我只需要调用ToArray()
并完成它.
如果您只有非通用IEnumerable,请执行以下操作:
IEnumerable query = ...;
MyEntityType[] array = query.Cast().ToArray();
如果您不知道该方法中的类型但该方法的调用者确实知道它,请将该方法设为泛型并尝试:
public static void T[] PerformQuery()
{
IEnumerable query = ...;
T[] array = query.Cast().ToArray();
return array;
}
`ToArray`扩展方法在`System.Linq`命名空间中,认为可能很好知道:).
@Shimmy:是的......除了其他任何东西,它告诉编译器期望什么样的数组!如果你只想要`object []`,只需使用`Cast