我有一个具有两个int属性的对象列表。该列表是另一个linq查询的输出。物体:
public class DimensionPair
{
public int Height { get; set; }
public int Width { get; set; }
}
我想在具有最大Height
属性值的列表中查找并返回该对象。
我可以设法获得价值的最高价值,Height
而不是对象本身。
我可以用Linq这样做吗?怎么样?
我们有一个扩展方法可以在MoreLINQ中做到这一点。您可以在此处查看实现,但是基本上是在数据中进行迭代的情况,记住我们到目前为止所看到的最大元素以及在投影下产生的最大值。
在您的情况下,您可以执行以下操作:
var item = items.MaxBy(x => x.Height);
与Mehrdad的第二个解决方案(与基本上相同)相比,此方法(IMO)比此处介绍的任何解决方案都要好MaxBy
:
Max
的值,然后找出与该值的第一个元素是O(n),但在序列迭代两次。在可能的情况下,应以单遍方式使用LINQ。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句