读取CSV并根据条件获得列的总和

  • 本文关键字:条件 CSV 读取 c# csv
  • 更新时间 :
  • 英文 :


我正在学习C#中的.csv文件处理。

假设我有一个.csv文件,其中包含以下数据。

industryName,value,currency 
Engineering,1000,USD
Agriculture,2000,EUR
Engineering,3000,LKR
Agriculture,4000,USD

如果货币仅为美元,我希望获得名为value的列的总和。例如,该数据集中的总和为5000(1000+4000(

如果有人能给出一段代码片段并给出答案,我们将不胜感激。

将数据读取到简单对象中

public class IndustryValue
{
public string IndustryName { get; set; }
public int Value { get; set; }
public string Currency { get; set; }
}
IEnumerable<IndustryValue> GetIndustryValues(/* whatever parmas you need to get the csv data*/)
{
List<IndustryValue> industries = //get you industries from csv
return industries;
}

然后使用简单的linq求和

var byIndustry = industryValues.Where(i => i.Industry.Equals("Agriculture")).Sum(i => i.Value);
var byCurrency = industryValues.Where(i => i.Currency.Equals("USD")).Sum(i => i.Value);
var byIndustryAndCurrency = industryValues.Where(i => i.Industry.Equals("Agriculture") && i.Currency.Equals("USD")).Sum(i => i.Value);

相关内容

  • 没有找到相关文章

最新更新