」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何有效地將數據標準轉換為.NET中的列表?

如何有效地將數據標準轉換為.NET中的列表?

發佈於2025-02-02
瀏覽:795

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