C# 使用where子句和return对列表对象进行分组
我想根据列表中的where子句获取分组列表。我怎么能做到。下面是一个例子C# 使用where子句和return对列表对象进行分组,c#,linq,C#,Linq,我想根据列表中的where子句获取分组列表。我怎么能做到。下面是一个例子 public class OrderUpdate { public string Value { get; set; } public int OrderType { get; set; } public DateTime? StartDate { get; set; } public DateTime? EndDate { get; set; } public long Ord
public class OrderUpdate
{
public string Value { get; set; }
public int OrderType { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public long OrderId { get; set; }
public string TrackingId { get; set; }
public OrderUpdate GetGroupedList()
{
var UpdateList = new List<OrderUpdate>();
var groupedList = UpdateList.GroupBy(u => u.TrackingId);
// where OrderType in (1, 2, 3, 4) and add this in groupedlist
// which is objecct of OrderUpdate
return groupedList;
}
}
公共类OrderUpdate
{
公共字符串值{get;set;}
公共int-OrderType{get;set;}
公共日期时间?开始日期{get;set;}
公共日期时间?结束日期{get;set;}
公共长医嘱ID{get;set;}
公共字符串跟踪ID{get;set;}
public OrderUpdate GetGroupedList()
{
var UpdateList=新列表();
var groupedList=UpdateList.GroupBy(u=>u.TrackingId);
//其中OrderType输入(1、2、3、4)并将其添加到groupedlist中
//这是OrderUpdate的目标
返回groupedList;
}
}
您的示例无法编译。我假设您希望按TrackId
对列表进行排序,并对某些订单类型进行筛选
public IEnumerable<OrderUpdate> GetList()
{
var validOrderTypes = new[] {1, 2, 3, 4};
var UpdateList = new List<OrderUpdate>();
// TODO: fill the list
return UpdateList
.Where(u => validOrderTypes.Contains(u.OrderType))
.OrderBy(u => u.TrackId);
}
public IEnumerable GetList()
{
var validOrderTypes=new[]{1,2,3,4};
var UpdateList=新列表();
//TODO:填写列表
返回更新列表
.Where(u=>validOrderTypes.Contains(u.OrderType))
.OrderBy(u=>u.TrackId);
}
groupedlist是OrderUpdate的属性或方法GetGroupedList返回OrderUpdate的列表?uh。。请详细说明OrderType在(1、2、3、4)中的位置并将其添加到groupedlist中,您是否希望通过在1、2、3、4中具有OrderType
的TrackingId
对OrderUpdate
进行分组?如果是这样的话,您可以先过滤它(执行Where
),然后分组。例如,int[]重新排序类型={1,2,3,4};UpdateList.Where(x=>refOrderType.Contains(x.OrderType)).GroupBy(x=>x.TrackingId)代码>--你得到要点了。