假设您有一个给定长度的边列表(为double)。现在您想要找到具有最大长度的边缘。在LINQ中有一种简单的方法吗?
当然,我可以先用Max计算最大值然后进行比较,但首先,这将是两次计算,其次比较双重性是一件坏事。
有什么建议吗?
答案 0 :(得分:6)
Jon Skeet在他的MoreLINQ库中有MaxBy
:http://code.google.com/p/morelinq
另请参阅Observable.MaxBy
或者看看
e.OrderByDescending(x => x.SomeProperty).First();
答案 1 :(得分:0)
...其次比较双打是否是一件坏事。
IIRC 不应该比较复制的double是否相同。毕竟它只是8个字节。问题出现在计算中 - 或者使用来自不同来源的两个相似值。
那就是说,害怕比较浮点数是好的:P