您好我有一个名为EmpowerCalendarCode的类:
它包含以下字段:CalendarCode,CalendarName,EffectiveStartDate,EmpowerTaxType,LongAgencyCode,TaxDepositFrequencyBaseTypeID。
我想基于LongAgenyCode和EmpowerTaxType过滤此列表。所以我们说:
public IList<EmpowerCalendarCode> GetEmpowerCalendarCodes(string longAgencyCode, string EmpowerTaxType)
{
//todo:
}
如果我为同一个longAgencyCode获得了多个EmpowerCalendarCode,EmpowerTaxType具有相同的TaxDepositFrequencyBaseTypeID,那么我应该选择具有最新EffectiveStartDate的那个。如何编写LINQ查询。我很好,即使我们必须做两个三个查询才能得到结果。
任何想法和建议都表示赞赏!
答案 0 :(得分:2)
return yourSource.Where(x => x.LongAgencyCode == longAgencyCode
&& x.EmpowerTaxType == empowerTaxType)
.GroupBy(x => x.TaxDepositFrequencyBaseTypeID,
(k, g) => g.OrderByDescending(x => x.EffectiveStartDate)
.First())
.ToList();
答案 1 :(得分:0)
试试这个:
ctx.EmpowerCalendarCodes
.Where(a=>a.LongAgencyCode == longAgencyCode && a.EmpowerTaxType == EmpowerTaxType)
.OrderByDescending(a=>a.EffectiveStartDate)
.FirstOrDefault();