在最近的Dot Net Rocks 播客中,Jon Skeet 提到了可能滥用 LINQ 语法。人们见过哪些用 LINQ 做疯狂事情的例子?
Alex Angas
问问题
2101 次
4 回答
21
它必须是在单个 LINQ 表达式中实现的光线追踪器。聪明,美丽,同时又可怕!
于 2008-10-29T09:59:13.577 回答
4
这是我自己的滥用- 纯粹是为了在极客之夜开怀大笑,并展示编译器对查询表达式的实际作用。
可以说我的“LINQ to Mandelbrot”也有点辱骂:)
顺便说一句,我特别想到了滥用语法,但是总是有很多方法可以滥用 LINQ 的存在——当有更简单的方法可用而不使用 LINQ 时,以“LINQ 方式”做事。例如,获取n
数组的第 th 个元素:
// Sensible (we know that people implements IList<Person>)
Person x = people[10];
// Insane
Person y = people.Skip(9).First();
我怀疑这样的滥用案例会比滥用查询表达式的权力更多,部分原因是许多开发人员不会意识到滥用查询表达式甚至会起作用:)
于 2008-10-29T09:58:55.997 回答
3
老实说,在某些情况下人们选择了 LINQ 语法,而代码这样做:
- 与简单循环相同或更长
- 与简单循环相比,没有提供性能或正确性优势(可读性/可维护性)
于 2009-08-05T18:39:54.390 回答
2
我见过的“最好的”之一来自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);
}
}
于 2014-07-01T13:31:33.337 回答