C# 使用where子句和return对列表对象进行分组

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

我想根据列表中的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 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)--你得到要点了。