2017-01-12 30 views
0

我想根据列表中的where子句获取分组列表。我如何做到这一点。下面是例子。使用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; 
    } 
} 
+0

groupedlist是OrderUpdate或方法的属性GetGroupedList OrderUpdate的返回列表? – Seminda

+0

呃..谨慎详细说明*(1,2,3,4)中的OrderType并将其添加到分组列表*中,您是否希望通过TrackingId将OrderUpdate分组为1 OrderType ,3,4?如果是这样,你可以先过滤它(做'Where')然后分组。即。 'int [] refOrderType = {1,2,3,4}; UpdateList.Where(x => refOrderType.Contains(x.OrderType))。GroupBy(x => x.TrackingId);' - 你得到了gist la,[reference](http://stackoverflow.com/questions/ 21919695/C锋利LINQ表达功能于λ-与-包含)。 –

回答

1

你的例子没有编译。我假设你想通过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); 
} 
相关问题