c# - 将 IList 或 IEnumerable 转换为数组的最佳方法

标签 c# nhibernate

我有一个 HQL 查询,它可以生成结果的 IList 或结果的 IEnumerable。

但是,我希望它返回我选择的实体数组,实现该目标的最佳方法是什么?我可以枚举它并构建数组,或者使用 CopyTo() 定义的数组。

有没有更好的办法?我采用了 CopyTo 方法。

最佳答案

您使用的是哪个版本的 .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;
}

关于c# - 将 IList 或 IEnumerable 转换为数组的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/268671/

相关文章:

c# - 在使用 C# 的 Visual Studio 2008 中,如何设置属性监视?

c# - WPF WebView 不显示

c# - 正则表达式删除某个字符后的所有内容(注释)

C# - FilesystemWatcher、MDB 文件和 MySQL

c# - 设置十进制标识符的小数位数和精度

c# - ASP.NET MVC 和 NHibernate - 使用属性而不是 XML

sql-server - SQL Server - 表似乎被阻止

nhibernate - Fluent Nhibernate 中的自定义 Tuplizer

c# - Dictionary <,> Size 、GetHashCode 和素数?

c# - NHibernate Sqldatetime 必须在 1/1/1753 和 12/31/9999 之间