[英]Select Distinct from list in date range with LINQ
我有一堂課未完成。
public class UnassignWork
{
public int RecordNr { get; set; }
public string GroupNum { get; set; }
public string Section { get; set; }
public string SubscriberID { get; set; }
public decimal DedAmt { get; set; }
public decimal CopayCoinsAmt { get; set; }
public int BaseDed { get; set; }
public int BaseOOP { get; set; }
public string ClaimRespCode { get; set; }
public string ClaimRejCode { get; set; }
public DateTime VendorFileDate { get; set; }
public string PackageCd { get; set; }
public DateTime ClaimDOS { get; set; }
public string WorkTypeCd { get; set; }
public string AssignedTo { get; set; }
public DateTime DateAssigned { get; set; }
}
我有一個基於班級的名單。
List<UnassignWork> UnassignedWorkList = new List<UnassignWork>();`
我如何在UnassignedWorkList中獲取VendorFileDate在開始日期和結束日期之間的項目的列表?
List<UnassignWork> dateRangeList = new List<UnassignWork>();
dateRangeList = UnassignedWorkList.Select(x=> x.VendorFileDate between startdate and enddate).ToList();
.Select()
方法用於轉換結果。 要限制結果,請使用Where()
您想要類似的東西:
UnassignedWorkList.Where(x => x.VendorFileDate > startData && x.VendorFileDate < endDate)
如CodeNotFound在此處的注釋中所述,您實際上可能想要使用一個包含范圍:
UnassignedWorkList.Where(x => x.VendorFileDate >= startData && x.VendorFileDate <= endDate)
為了使結果與眾不同,您可以使用Distinct()
方法,但是該方法使用默認的相等比較器,因此您需要在類上實現相等運算符才能起作用(請參閱-https://msdn.microsoft。 com / zh-CN / library / bb348436(v = vs.110).aspx )。 您可以實現自己的“ DistinctBy”方法,也可以僅使用GroupBy()
-您可以在此處看到兩種方法: 通過LINQ按類的屬性進行區分
您可以使用以下方法
class Program
{
static void Main(string[] args)
{
var fromDate = DateTime.Today.AddDays(2);
var toDate = DateTime.Today.AddDays(5);
var tempList = new List<UnassignWork>();
tempList.Add(new UnassignWork { DateAssigned=DateTime.Today.AddDays(1)});
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(1) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(2) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(3) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(4) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(5) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(6) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(7) });
tempList.Add(new UnassignWork { DateAssigned = DateTime.Today.AddDays(8) });
//Lambda Operation
var filterdList = tempList.Where(e => e.DateAssigned >= fromDate && e.DateAssigned <= toDate);
//Linq Operation
var filterdList2 = (from t in tempList
where t.DateAssigned >= fromDate && t.DateAssigned <= toDate
select t);
}
}
public class UnassignWork
{
public int RecordNr { get; set; }
public string GroupNum { get; set; }
public string Section { get; set; }
public string SubscriberID { get; set; }
public decimal DedAmt { get; set; }
public decimal CopayCoinsAmt { get; set; }
public int BaseDed { get; set; }
public int BaseOOP { get; set; }
public string ClaimRespCode { get; set; }
public string ClaimRejCode { get; set; }
public DateTime VendorFileDate { get; set; }
public string PackageCd { get; set; }
public DateTime ClaimDOS { get; set; }
public string WorkTypeCd { get; set; }
public string AssignedTo { get; set; }
public DateTime DateAssigned { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.