gpt4 book ai didi

C#懒惰问题

转载 作者:太空狗 更新时间:2023-10-29 22:20:31 24 4
gpt4 key购买 nike

C#(LINQIEnumerableIQueryable, ...)?

现在,我通常尝试使用 yield returnLINQ 查询使每个查询尽可能惰性,但在运行时这通常会导致 "太懒惰” 行为,当每个查询都从一开始就构建时,显然会导致严重的视觉性能下降。

我通常做的是将 ToList() 投影运算符放在某个地方来缓存数据,但我怀疑这种方法可能不正确。

从一开始就设计此类应用程序的合适/常用方法是什么?

最佳答案

我发现将每个 IEnumerable 分为三个类别之一很有用。

  1. 快速的 - 例如列表和数组
  2. 慢的 - 例如数据库查询或繁重的计算
  3. 非确定性的 - 例如list.Select(x => new { ... })

对于类别 1,我倾向于在适当的时候保留具体类型,数组或 IList 等。对于第 3 类,最好将它们保留在一个方法中,以避免难以发现的错误。然后我们有类别 2,和往常一样,在优化性能时,首先测量以找到瓶颈。

关于C#懒惰问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com