LINQ新手在这里。
我有一个很长的LINQ查询,称为MYLONGQUERY,它返回某些类实例的集合。如果列表不为空,我想返回第一个实例的属性(MYPROPERTY);否则返回一些默认值(DEFAULTPROPERTY)。所以查询看起来像这样
(0!= MYLONGQUERY.count())? MYLONGQUERY.FirstOrDefault()。MYPROPERTY:DEFAULTPROPERTY
这很好用。但是,我不喜欢我必须在"?"之前和之后重复MYLONGQUERY这一事实。我一直在尝试Let and Into,但未能让这些工作。它必须是方法语法,而不是查询语法。建议?欣赏它。
答案 0 :(得分:0)
您必须先选择属性,然后使用DefaultIfEmpty
指定默认值:
var prop = MYLONGQUERY
.Select(x => x.MYPROPERTY)
.DefaultIfEmpty(DEFAULTPROPERTY) // new default-value
.First(); // never exception