如何对C#类对象值进行分组。 LINQ可以吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何对C#类对象值进行分组。 LINQ可以吗?相关的知识,希望对你有一定的参考价值。

我一直在尝试对对象字段进行分组,但似乎无法正常工作。

这里是类对象

  public class Inventory
    
        public string warehouse_id  get; set; 
        public string product_id  get; set; 
        public int quantity  get; set; 
    


     public List<Inventory> inventories  get; set; 

数据是通过JSON这样从API调用传入的:


"inventories": [
    "warehouse_id": "warehouse1",
    "product_id": "productA",
    "quantity": 5400
, 
    "warehouse_id": "warehouse2",
    "product_id": "productA",
    "quantity": 571
, 
    "warehouse_id": "warehouse3",
    "product_id": "productA",
    "quantity": 0
, 
    "warehouse_id": "warehouse1",
    "product_id": "prod_B",
    "quantity": 0
, 
    "warehouse_id": "warehouse2",
    "product_id": "prod_B",
    "quantity": 0
, 
    "warehouse_id": "warehouse3",
    "product_id": "prod_B",
    "quantity": 1
, 

]

反序列化对象没有问题。

Request request = new Request("api/path/to/get/inventory/data", Method.GET);
var r= request.Execute<InventoryReport>();

现在我有一个已填充的InventoryReport对象。

我需要忽略Warehouse_id值,并按产品分组数量数据。例如"inventories": [ "warehouse_id":"any value here", "product_id": "productA", "quantity": 5571 // Here we have grouped the total quantity by product ,

问题分为两部分。 LINQ是否可能获得此结果?我尝试了此操作,但它不起作用(由于可变的Warehouse_id,我在想)。

 var groupedInventory = from newObject1 in r.inventories
            group arrayObject1 by new  newObject1.quantity, newObject1.product_id 
            into g
            select new  KKey = g.Key, Obj = g ;

如果不可能,最好的方法是什么。我只是不明白,所以任何指导都将有所帮助。

我一直在尝试对对象字段进行分组,但似乎无法正常工作。这是类对象public class Inventory public string Warehouse_id get;组; ...

答案

尝试一下

以上是关于如何对C#类对象值进行分组。 LINQ可以吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用聚类对具有相似意图的句子进行分组?

当动态值匹配时,jQuery 按类对元素进行分组

如何使用 Linq 按日期时间和平均结果对字典进行分组

如何像实体框架一样在Core Data的一个类文件中对属于一个实体的方法进行分组?

LINQ分组[重复]

如何在 yii2 中使用身份类对管理员和员工进行身份验证