我有一个具有两个int属性的对象列表.该列表是另一个linq查询的输出.物体:
public class DimensionPair
{
public int Height { get; set; }
public int Width { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想找到并返回列表中具有最大Height属性值的对象.
我可以设法获得值的最高值,Height但不能获得对象本身.
我可以用Linq做到这一点吗?怎么样?
我在另一个StackOverflow问题开始(在评论中)的讨论后开始这个问题,我很想知道答案.考虑以下表达式:
var objects = RequestObjects.Where(r => r.RequestDate > ListOfDates.Max());
Run Code Online (Sandbox Code Playgroud)
ListOfDates.Max()在这种情况下,是否有任何(性能)优势可以移出Where子句的评估,还是1.编译器或2. JIT优化它?
我相信C#只会在编译时进行常量折叠,并且可以认为ListOfDates.Max()在编译时是不可知的,除非ListOfDates本身在某种程度上是常量.
也许还有另一个编译器(或JIT)优化,确保只评估一次?