gpt4 book ai didi

c# - 使用 Linq 从表中提取数据

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:01 25 4
gpt4 key购买 nike

我有一个表格,如下图所示。我需要从根据国家/地区列出的表格中提取一个列表。而且没有重复的国家。因此,例如,中国将只出现一次,将添加其总工资,将添加其总债务,并分别添加所有其他列。所以它应该如下所示:

Country --- Totay Pay---Total Debt--- NetAmount

China-- (3.1+4.2)B--- (2.0+2.0)B----(8+4)B

India--

Russia---

如果我们可以使用 LINQ 表达式,我会更喜欢。我尝试使用 GroupBy 和其他运算符,但无法理解。

Table of Data

最佳答案

GroupBy运算符是很好的方向 - 您应该按国家/地区分组并使用 one of its overloads 对其他值求和那:

Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.

假设数据如下:

var data = new List<Data>()
{
new Data() { Country = "China", Index = 2, TotalPay = 3.1M, TotalDebt = 2.0M, NetAmount = 8.0M},
new Data() { Country = "India", Index = 4, TotalPay = 2.1M, TotalDebt = 3.0M, NetAmount = 9.0M},
new Data() { Country = "China", Index = 8, TotalPay = 5.1M, TotalDebt = 4.0M, NetAmount = 10.0M},
};

你可以这样写:

var results = data.GroupBy(x => x.Country, (key, elements) => new Data()
{
Country = key,
Index = elements.Sum(v => v.Index),
TotalPay = elements.Sum(v => v.TotalPay),
TotalDebt = elements.Sum(v => v.TotalDebt),
NetAmount = elements.Sum(v => v.NetAmount)
});

关于c# - 使用 Linq 从表中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com