我有一个具有两个 int 属性的对象列表。该列表是另一个 linq 查询的输出。物体:
public class DimensionPair { public int Height { get; set; } public int Width { get; set; } }
我想在列表中查找并返回具有最大Height属性值的对象。
Height
我可以设法获得价值的最高值,Height但不能获得对象本身。
我可以用 Linq 做到这一点吗?如何?
我们在MoreLINQ中有一个扩展方法可以做到这一点。您可以查看那里的实现,但基本上这是一个遍历数据的情况,记住我们迄今为止看到的最大元素以及它在投影下产生的最大值。
在您的情况下,您会执行以下操作:
var item = items.MaxBy(x => x.Height);
这比 Mehrdad 的第二个解决方案(与 基本相同)之外的任何解决方案都更好(IMO MaxBy):
MaxBy
Max