另一种方法是返回IEnumerable(而不是List)并使用yield关键字.这不会消耗列表的额外内存.
public IEnumerable<string> MyBigList(DataReader reader)
{
while (reader.Read())
{
yield return (string) reader["SomeField"];
}
}
Run Code Online (Sandbox Code Playgroud)
在过去,这被称为共同例程,在C#中它被称为迭代器.有关迭代器和更多信息,请参阅MSDNyield.
处理字符串
foreach (var s in MyBigList(reader))
{
// do something with s
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |