Jon*_*röm 3 c# linq linq-to-objects
我有一个经典的Order - > Order Row场景,如下所示:
public class Order
{
public int Id { get; set; }
public string Name { get; set; }
public List<OrderRow> OrderRows { get; set; }
}
public class OrderRow
{
public int Id { get; set; }
public int ProductId { get; set; }
public int Amount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和一个List <Order>.从订单列表中我想获得所有唯一ProductIds的列表.
我这样解决了:
var orders = new List<Order>();
// TODO get the orders from DB
var products = new Dictionary<int,int>();
orders.ForEach(order => order.OrderRows.ForEach(row => products[row.ProductId]=row.ProductId));
Run Code Online (Sandbox Code Playgroud)
但是我对我使用Dictionary有疑问,为什么我没有使用LINQs GroupBy,还评论说它不是很清楚它是如何工作的.我认为解决方案很好,但评论让我想尝试在LINQ中解决它,但出于某种原因,我尝试了一个砖墙.
如何从LINQ订单列表中获取唯一产品ID列表?
未经测试,但如何:
var products = orders.SelectMany(o => o.OrderRows)
.Select(r => r.ProductId)
.Distinct();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |