高效转换DataReader到List
DataReader存储数据很方便,但有时需要以其他格式(例如列表)处理数据。将DataReader转换为强类型列表,如List
一种简化流程的方法是创建一个扩展方法来处理转换。示例如下:
<code class="language-csharp">public static IEnumerable<T> Select<T>(this IDataReader reader, Func<IDataReader, T> projection) { while (reader.Read()) { yield return projection(reader); } }</code>
此方法采用一个Func,该Func定义如何将DataReader的每一行转换为T类型的实例。然后,您可以使用LINQ的ToList()方法将结果转换为List
另一种方法是在目标类型(Customer)中创建一个从DataReader转换的方法。例如:
<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>
使用此方法,您可以简单地使用以下代码检索List
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader) .ToList(); }</code>
以上是如何轻松地将 DataReader 转换为列表?的详细内容。更多信息请关注PHP中文网其他相关文章!