2014-06-07 25 views
0

LINQ newbie here。LINQ中的方法語法:嘗試在長查詢中使用變量

我有一個很長的LINQ查詢,稱之爲MYLONGQUERY,它返回某些類實例的集合。如果列表不爲空,我想返回第一個實例的屬性(MYPROPERTY);否則它會返回一些默認值(DEFAULTPROPERTY)。所以查詢看起來像這樣

(0!= MYLONGQUERY.count())? MYLONGQUERY.FirstOrDefault()。MYPROPERTY:DEFAULTPROPERTY

這工作正常。但是,我不喜歡在「?」之前和之後重複MYLONGQUERY的事實。我一直在嘗試讓和,但一直沒有能夠讓這些工作。它必須是方法語法,而不是查詢語法。建議?欣賞它。

+0

井噴我!它的DefaultIfEmpty()不是FirstOrDefault()。 http://msdn.microsoft.com/en-us/library/vstudio/bb355419(v=vs.100).aspx – brumScouse

+0

這一切都必須在一條線上? – MAV

+0

什麼類型的LINQ? (到SQL,到實體...) –

回答

0

你必須首先選擇屬性,然後你可以用DefaultIfEmpty指定默認值:

var prop = MYLONGQUERY 
    .Select(x => x.MYPROPERTY) 
    .DefaultIfEmpty(DEFAULTPROPERTY) // new default-value 
    .First();      // never exception