2011-01-21 67 views
1

如果我在queryableOrderByDescending(...)(和之前的Take(1))之前留下括號或刪除它們,是否有區別?爲什麼或者爲什麼不?LINQ擴展方法中括號的影響查詢

public static IQueryable<IEffectiveDated> GetCurrent(this IQueryable<IEffectiveDated> queryable, DateTime asOfDate) 
{   
    return (queryable 
     .Where(e => e.EffectiveDate <= asOfDate) 
     .OrderByDescending(e => e.EffectiveDate)) 
     .Take(1);  
} 

回答

3

這種情況沒有什麼區別。換句話說:

return (queryable 
    .Where(e => e.EffectiveDate <= asOfDate) 
    .OrderByDescending(e => e.EffectiveDate)) 
    .Take(1); 

是相同的:

return queryable 
    .Where(e => e.EffectiveDate <= asOfDate) 
    .OrderByDescending(e => e.EffectiveDate) 
    .Take(1); 

後者可能是更清潔,更顯示了LINQ的鏈接。