高效處理數據:將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
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3