在最近的Dot Net Rocks podcast上,Jon Skeet提到可能滥用LINQ语法。人们看到了LINQ在疯狂的事情上做了什么样的例子?什么是你见过的最糟糕的LINQ语法滥用?
10
A
回答
3
这里是my own abuses--纯粹是为了嘲笑怪人之夜,并展示编译器实际上对查询表达式所做的事情。
可以说我"LINQ to Mandelbrot"有点滥用太:)
我特别的方式思考语法的滥用,但总有很多方法可以滥用LINQ的非常存在 - 做事“LINQ的方式”,当有更简单的方法可用,而不使用LINQ。举例来说,让一个数组的n
个元素:
// Sensible (we know that people implements IList<Person>)
Person x = people[10];
// Insane
Person y = people.Skip(9).First();
我怀疑会有滥用更多的情况下是这样比滥用查询表达式的能力,一方面是因为很多开发者不会意识到滥用查询表达式甚至会起作用:)
20
它必须是ray-tracer implemented in a single LINQ expression。所有在同一时间聪明,美丽,可怕!
2
老实说,这一定是情况下,人们选择了LINQ语法,其中的代码,这样做:
- 比一个简单的循环
- 没有提供性能或正确性优势相同或更长(可读性/可维护性)在一个简单的循环
1
其中“最佳”那些我见过的是thedailywtf.com
public string LastSixDigits
{
get
{
if (string.IsNullOrWhiteSpace(this.Number) || this.Number.Length < 6)
return string.Empty;
return this.Number.Reverse().Take(6).Reverse().Aggregate(string.Empty, (s, c) => s += c);
}
}
相关问题
- 1. 什么是WPF最糟糕的问题?
- 2. MySQL JOIN滥用?它有多糟糕?
- 3. 你认为什么是最滥用的设计模式?
- 4. 快速排序最糟糕的情况是什么?
- 5. 什么是最糟糕的项目失败?
- 6. 为什么Dijkstra最糟糕的情况是E + VlogV?
- 7. vim colorscheme糟糕的语法支持
- 8. 最糟糕的SQL有
- 9. 什么是你见过的最棒的vs2008主题
- 10. 你见过的最有趣的设计模式是什么?
- 11. 你见过的一些最好的开源项目是什么?
- 12. 你遇到过的最令人印象深刻的LINQ语句是什么?
- 13. Jquery糟糕的做法
- 14. ADO.NET - 糟糕的做法?
- 15. Max-Heapify最糟糕的情况 - 你如何获得2n/3?
- 16. 什么是您在生产中发生的最糟糕的数据库事故?
- 17. make/gcc:“糟糕的构建”的可能原因是什么?
- 18. 为什么重写Plone的main_template.pt是一个糟糕的主意?
- 19. 为什么我的jQuery过渡很糟糕?
- 20. 为什么val + = someOtherValue如此糟糕?
- 21. 为什么GLUT如此糟糕?
- 22. 为什么.classname比element.classname糟糕
- 23. 什么是大堆近似最糟糕的垃圾收集时间
- 24. 什么是你见过的最好看的桌面应用程序UI?
- 25. 为什么这是一个糟糕的散列函数?
- 26. 为什么混淆JavaScript代码是一种糟糕的风格?
- 27. 糟糕的表现
- 28. 是Erlang这个应用程序的糟糕语言吗?
- 29. 为什么PLINQ会给LINQ查询带来更糟糕的性能?
- 30. 糟糕的GPU能否导致Flash游戏的糟糕表现?
为什么有人会做Skip.First时他们可以做ElementAt? ;) – 2009-09-18 08:27:32
在硬币的另一面,有人认为查询表达式是使用数据库的唯一方式。 http://stackoverflow.com/q/16904331/34397 – SLaks 2013-06-03 19:33:21