”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何有效地将数据标准转换为.NET中的列表?

如何有效地将数据标准转换为.NET中的列表?

发布于2025-02-02
浏览:263

How Can I Efficiently Convert a DataReader into a List in .NET?

高效处理数据:将DataReader转换为List

在.NET环境中处理数据时,您可能需要将DataReader(一种只向前读取的数据流)转换为更易于管理的格式,例如List。这种转换允许您更有效率地访问和处理结构化数据。

解决方案:扩展方法

一种转换方法是使用扩展方法。示例如下:

public static IEnumerable Select(this IDataReader reader,
                                       Func projection)
{
    while (reader.Read())
    {
        yield return projection(reader);
    }
}

此扩展方法允许您使用投影函数从DataReader中选择数据并将其转换为IEnumerable

使用方法示例

要将数据转换为List,您可以使用以下代码:

using (IDataReader reader = ...)
{
    List customers = reader.Select(r => new Customer {
        CustomerId = r["id"] is DBNull ? null : r["id"].ToString(),
        CustomerName = r["name"] is DBNull ? null : r["name"].ToString()
    }).ToList();
}

此示例将DataReader中的行转换为Customer对象的列表。

替代方法:针对实体类型的专用方法

或者,您可以在Customer实体中创建一个专用的静态方法:

public static Customer FromDataReader(IDataReader reader) { ... }

此方法负责根据DataReader中的数据创建Customer对象。

使用此方法,您可以简化转换过程:

using (IDataReader reader = ...)
{
    List customers = reader.Select(Customer.FromDataReader)
                                     .ToList();
}

通过这些技术,您可以高效地将DataReader中的数据转换为List,从而利用LINQ的强大功能进行进一步的数据操作和处理。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3