C# 将新项追加到列表项

本文关键字:列表 追加 新项 | 更新日期: 2023-09-27 17:56:54

下面的代码有一个包含两行的列表,我希望能够合并这两行并根据国家/地区对收入字段求和。

public class City
{
 public string Name {get;set;}
 public string Country {get;set;}
 public double income {get;set;}
}
public class myClass
{
void Main()
{
 var c = GetCities();
 var d = c.GroupBy(s => new {s.Country, s.Flag, s.Name}).Select(s => new City { Country = s.Key.Country, Flag = s.Key.Flag, Name = s.Key.Name});
 d.Dump(); //LINQPAD output to screen
}
public List<City> GetCities()
{
 List<City> cities = new List<City>();
 cities.Add(new City() { Name = "Istanbul", income= 22.00, Country = "Turkey"  });
 cities.Add(new City() { Name = "", income= 44.88, Country = "Turkey" });
 return cities;
}
}

在我的实际应用程序中,列表是在两个地方生成的,但数据需要显示在一行上。

C# 将新项追加到列表项

找到了我的答案

var result = c.GroupBy(x => x.Country)
.Select(g => {
var item = g.First();
return new{
Country = item.Country,
Name = item.Name,
income = g.Sum(x => x.income) };
}).ToList();