LINQ使用技巧与注意事项
1. 优先使用延迟求值查询
在定义查询时,实际上并没有获取数据并填充序列,只是定义了在迭代该查询时将执行的一组步骤。每次执行查询时,都会从头开始执行整个过程,这就是所谓的延迟求值。但有时我们需要立即获取数据,即立即求值。
1.1 延迟求值示例
以下代码展示了延迟求值的特性:
private static IEnumerable<TResult>
Generate<TResult>(int number, Func<TResult> generator)
{
for (int i = 0; i < number; i++)
yield return generator();
}
private static void LazyEvaluation()
{
Console.WriteLine("Start time for Test One: {0}",
DateTime.Now);
var sequence = Generate(10, () => DateTime.Now);
Console.WriteLine("Waiting....\tPress Return");
Console.ReadLine();
Console.WriteLine("Iterating...");
foreach (var value in sequence)
Console.WriteLine(value);
Console
LINQ使用技巧与最佳实践
超级会员免费看
订阅专栏 解锁全文
842

被折叠的 条评论
为什么被折叠?



