C# LINQ C,同一字段的和列

C# LINQ C,同一字段的和列,c#,linq,C#,Linq,在此列表中有查询的结果。可能有一些字段具有相同的字段ID\u articolo相同的产品ID var list = dbContext.Set<Bolle_dettaglio>() .Where(r => r.ID_bolla == id && r.ID_articolo != 0); 已测试此groupby,但它无法正常工作。请尝试使用group by和sum: dbContext.Set<Bolle_dettaglio>().Group

在此列表中有查询的结果。可能有一些字段具有相同的字段ID\u articolo相同的产品ID

var list = dbContext.Set<Bolle_dettaglio>()
    .Where(r => r.ID_bolla == id && r.ID_articolo != 0);

已测试此groupby,但它无法正常工作。

请尝试使用group by和sum:

dbContext.Set<Bolle_dettaglio>().GroupBy(r => r.id_articolo)
.Select(
    g => new
    {
        id_articolo = g.Key,
        Quantity = g.Sum(s => s.Quantity), 
    });

请尝试使用group by和sum:

dbContext.Set<Bolle_dettaglio>().GroupBy(r => r.id_articolo)
.Select(
    g => new
    {
        id_articolo = g.Key,
        Quantity = g.Sum(s => s.Quantity), 
    });
您需要根据id_articolo对列表进行分组,然后计算数量总和字段

比如:

var NewList=    dbContext.Set<Bolle_dettaglio>().GroupBy(x => x.id_articolo).Select(y => new 
                {
                    id_articolo = y.Key,
                    Quantity = y.Sum(z => z.Quantity)
                }).ToList();
您需要根据id_articolo对列表进行分组,然后计算数量总和字段

比如:

var NewList=    dbContext.Set<Bolle_dettaglio>().GroupBy(x => x.id_articolo).Select(y => new 
                {
                    id_articolo = y.Key,
                    Quantity = y.Sum(z => z.Quantity)
                }).ToList();
这一个有效,但它只有两个字段:id_articolo和quantity。这张表有很多数据,我也需要保存它们,我怎样才能用groupBy做到这一点

这一个有效,但它只有两个字段:id_articolo和quantity。这张表有很多数据,我也需要保存它们,我怎样才能用groupBy做到这一点

测试了这个groupby,但它没有像我想的那样工作

不清楚您是如何测试结果的,也不清楚它是如何不起作用的,但当您这样做时:

var test = list.GroupBy(u => u.ID_articolo).ToList();
…您现在有了一个对象组列表,其中每个组都包含共享同一个键(即ID_articolo属性)的对象。组本身类似于列表,您可以使用System.Linq扩展方法将其视为列表,包括获取Quantity属性的总和

例如,在控制台应用程序中,您可以输出代码的结果,如:

// Write a header
Console.WriteLine("Id\tQuantity");

// Output the id for each group, along with the sum of it's quantity
test.ForEach(grp => Console.WriteLine($"{grp.Key}\t{grp.Sum(item => item.Quantity)}"));
输出

测试了这个groupby,但它没有像我想的那样工作

不清楚您是如何测试结果的,也不清楚它是如何不起作用的,但当您这样做时:

var test = list.GroupBy(u => u.ID_articolo).ToList();
…您现在有了一个对象组列表,其中每个组都包含共享同一个键(即ID_articolo属性)的对象。组本身类似于列表,您可以使用System.Linq扩展方法将其视为列表,包括获取Quantity属性的总和

例如,在控制台应用程序中,您可以输出代码的结果,如:

// Write a header
Console.WriteLine("Id\tQuantity");

// Output the id for each group, along with the sum of it's quantity
test.ForEach(grp => Console.WriteLine($"{grp.Key}\t{grp.Sum(item => item.Quantity)}"));
输出


“ID_articolo”和无法找到可访问的扩展方法“ID_articolo”接受类型为“IGrouping”的第一个参数。是否缺少using指令或程序集引用?它在Key=g中给出了错误。ID_articoloI修复了它。您需要使用组键“ID\u articolo”,并且找不到可访问的扩展方法“ID\u articolo”,该扩展方法接受类型为“igroupping”的第一个参数。是否缺少using指令或程序集引用?它在key=g中给出了错误。ID\u articoloI修复了它。您需要使用组密钥。当前上下文中不存在名称“ID\u Articolo”。它在id\u articolo=id中给出了错误_articolo@staff614已编辑名称“ID\u Articolo”在当前上下文中不存在。它在id\u articolo=id中给出了错误_articolo@staff614它已编辑您的原始代码工作正常,并将所有其他属性与返回的对象一起保留。请参阅我的答案,了解如何从中获取数量之和。此外,由于这不是一个答案,您应该使用此附加的澄清信息来回答原始问题,而不是将其作为答案发布。您的原始代码工作正常,并保留所有其他属性和返回的对象。请参阅我的答案,了解如何从中获得数量之和。此外,由于这不是一个答案,您应该使用此额外的澄清信息来回答原始问题,而不是将其作为答案发布。我得到了数量的总和,但没有得到其他属性的保存方式:查看结果:列表还得到了我想要保存在列表中的其他重要属性,而不是像现在这样的匿名列表:作为描述,产品代码如果要保存对象,则不要选择匿名类型。使用您的原始代码,并获得上述总和。如果上面的代码不是你想要的,请告诉我什么要求没有得到满足。我得到了数量的总和,但没有得到其他属性的保存方式:查看结果:列表还得到了我想要保存在列表中的其他重要属性,而不是像现在这样的匿名列表:作为描述,产品代码如果要保存对象,则不要选择匿名类型。使用您的原始代码,并获得上述总和。如果上面的代码不是你想要的,请告诉我什么要求没有得到满足。