从列表中获取最大和最小日期列表

时间:2012-11-18 08:18:21

标签: c# asp.net

我通过此查询获得了不同的公司名称

 List<string> listCieId = new List<string>(from l in LstAdvancePaymentRep select l.CieDesc.Trim()).Distinct().ToList();

我想要做的是获取listCieId

中所有公司的最短日期最长日期
   List<DateTime> listCieId2 = new List<DateTime>(from l in LstAdvancePaymentRep where l.CieDesc.Trim().Distinct() select l.CtcDtStart.Value).Min().ToList();

List<DateTime> listCieId3 = new List<DateTime>(from l in LstAdvancePaymentRep where l.CieDesc.Trim().Distinct select l.CtcDtEnd.Value).Max().ToList();

我是新手,此类查询尚未使用过

编辑:由于LstAdvancePaymentRep中有重复,我使用Distinct获取不同的公司名称

enter image description here

编辑:试过这个

 List<DateTime> lstDatesCtcStartDate = new List<DateTime>(
 from l in LstAdvancePaymentRep where l.CieDesc.Trim().Equals(lblCieName.Text.Trim()) select l.CtcDtStart.Value.Date
 );

如何在LIST lstDatesCtcStartDate

中找到最短日期

1 个答案:

答案 0 :(得分:3)

尝试:

var minDate = lstDatesCtcStartDate.Min();

或者,如果您的公司对象有一个名称和一个日期属性,并且每个公司有多个,并且您想要一个具有最小日期的每个不同公司的列表,那么:

class Company
{
    public string Name { get; set; }
    public DateTime Date { get; set; }
}

var companies = new List<Company>();

var companiesWithMinDate = companies.GroupBy(c => c.Name).Select(g => new { Name = g.Key, Date = g.Min(c => c.Date) });