FirstOrDefault行为直接在LINQ语句中

Pau*_*der 17 linq

好像我可能在语法中遗漏了一些简单的东西,但是我想直接从linq语句中获取FirstOrDefault的结果,而不必先将IEnumerable存储在临时变量中.像这样的东西:

var bestCar = from c in cars
              orderby c.Price
              select first c
Run Code Online (Sandbox Code Playgroud)

我知道第一个关键字实际上并不存在,但说明了我想要做的事情.我也知道我可以在括号中包含from ... select语句并直接调用FirstOrDefault,但我认为上面的语法更清晰,更易于阅读.

Jar*_*Par 28

Enumerable.FirstOrDefault是Enumerable类中的扩展方法之一,它没有相应的LINQ语法元素.绑定到此方法的唯一方法是通过方法调用语法.

你可以通过跟随来避免临时

var bestCar = (from c in cars
              orderby c.Price
              select c).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)


Ada*_*son 8

没有办法做到这一点.LINQ用于定义查询.这样做实际上不会导致评估,而执行FirstOrDefault(或枚举)会执行查询.