如何获取每个小部件分组的总数量?
预期结果:
WidgetA - 数量总和
WidgetB - 数量总和
WidgetC - 数量总和
WidgetD - 数量总和
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; }
}
}
要获取每个小部件分组的总数量,您应该修改代码中的 LINQ 查询。您应该将小部件分组
WidgetName
,然后对Quantity
每组中的小部件进行求和。然后,您可以选择新的小部件(或表示结果的其他类型,如元组或匿名类型)来保存WidgetName
和 总计Quantity
。这是代码的更正版本:在此代码中:
WidgetName
。Quantity
对于每个组,它通过对组中小部件的值求和来计算总数量。WidgetName
每个结果都是具有和属性的匿名类型TotalQuantity
。mono /tmp/6ggMemfC28.exe (此命令用于在非 Windows 平台上使用 Mono 运行时执行 .NET 可执行文件,就像我使用 Linux 操作系统一样)
小部件A-8
小部件B-6
小部件C-6
小部件D-6
通过对 res 分组中所有小部件的数量求和