【发布时间】:2018-07-12 12:51:16
【问题描述】:
在 LINQ 一词下的这个问题中,我的意思是 LINQ to objects。
哪些 LINQ 方法分配新内存,哪些不分配?
例如,Select(x => x) 是否分配新内存?
如果 LINQ 中有不同的方法 - 有些分配内存而另一些没有 - 我是否从内存效率的角度检查并考虑了 LINQ 链中的每个方法?那么使用 LINQ 不仅仅是简单愚蠢地在 LINQ 链中添加任何方法?因此,在链中使用它之前,我需要不断记住每个 LINQ 方法“功能”吗?换句话说,在内存效率方面,是否没有使用 LINQ 的单一规则或模式(如“LINQ 总是分配/不分配新内存”)?
【问题讨论】:
-
你可以通过这个链接有一些想法:stackoverflow.com/questions/4304961/linq-memory-question
-
你需要了解每个函数在做什么。为此,值得看看 Jon skeets 关于实现 linq 的博客......
-
另外,Linq 并不直接,因为它可以针对不同的事物,在这种情况下,您实际上是在谈论 linq to objects
-
@KeithNicholas 是的,你是对的。我指定了我的问题。
标签: c# linq memory-management linq-to-objects