LINQ到对象优化技术?

Ben*_*sen 7 optimization performance linq-to-objects

你使用LINQ to Objects优化技术或者你在野外看到了什么?

在等待"产生foreach"和其他语言/编译器优化到201x中的C#时,我很有意思尽一切可能使LINQ在任何地方使用,而不是性能上的痛苦.

到目前为止,我看到的一种模式是为特定的组合器创建自定义的IEnumerable实现,这样可以多次重新枚举枚举.

Jon*_*eet 10

我发现了几次 - 不要使用:

if (query.Count() > 0)
Run Code Online (Sandbox Code Playgroud)

......用这个代替:

if (query.Any())
Run Code Online (Sandbox Code Playgroud)

这样它只需要找到第一场比赛.

编辑:您可能也对我最近撰写的关于优化的博客文章感兴趣,这些优化可能在LINQ to Objects中但不是(或者不在.NET 3.5中).

此外,如果您要进行大量x.Contains(y)操作并且x是现有查询的结果(即它不会是某些优化的集合),您应该考虑构建HashSet<T>from x以避免线性扫描(执行查询)x在每次迭代中产生结果.