Como obtenho a quantidade total de cada agrupamento de widgets?
Resultado Esperado:
WidgetA - Soma da quantidade
WidgetB - Soma da quantidade
WidgetC - Soma da quantidade
WidgetD - Soma da quantidade
using static System.Net.Mime.MediaTypeNames;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
List<Widget> list = new();
list.Add(new Widget() { WidgetName = "WidgetA", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetB", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetC", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetD", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetA", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetB", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetC", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetD", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetA", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetB", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetC", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetD", Quantity = 2 });
list.Add(new Widget() { WidgetName = "WidgetA", Quantity = 2 });
var queryResult = (from x in list
group x by x.WidgetName into res
select new Widget
{
WidgetName = res.First().WidgetName,
}).ToList();
}
}
class Widget
{
public string WidgetName { get; set; } = "";
public int Quantity { get; set; }
}
}
Para obter a quantidade total de cada agrupamento de widgets, você deve modificar a consulta LINQ em seu código. Você deve agrupar os widgets
WidgetName
e então somar oQuantity
número de widgets em cada grupo. Você pode então selecionar novos widgets (ou outro tipo para representar os resultados, como uma tupla ou um tipo anônimo) para armazenar oWidgetName
e o totalQuantity
. Aqui está uma versão corrigida do seu código:Neste código:
WidgetName
.Quantity
valores dos widgets do grupo.WidgetName
eTotalQuantity
.mono /tmp/6ggMemfC28.exe (este comando é usado para executar um executável .NET em uma plataforma não Windows usando o tempo de execução Mono como eu, que uso um sistema operacional Linux)
WidgetA - 8
WidgetB - 6
WidgetC - 6
WidgetD - 6
somando a quantidade de todos os widgets no agrupamento res