我正在学习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);