我正在使用以下课程
class Country
{
int CountryID {get; set;}
List<City> city {get; set;}
}
class City
{
int CountryID {get; set; }
string city {get; set;}
int sqkm {get; set;}
}
以下是国家和城市的一些示例数据
国家
US
英国
加拿大
城市
CityC
CityF
CityA
CityB
CityG
CityD
CityE
我正在使用
填充List<Country> countries = new List<Country> { new Country() { CountryID = "US", city = new List<City> { new City() {CountryID = "US", City ="CityF", sqkm = 2803 }, and so on
问题1:我想使用LINQ来查找每个国家/地区的平均每公里土地数
例如:
加拿大 - 2459
英国 - 3243
美国 - 3564
答案 0 :(得分:0)
你应该可以做这样的事情(using System.Linq;
):
foreach( Country c in countries)
{
int average = c.city.Sum( city => city.sqkm)/c.city.Count();
// display it, or save it, or something
}
答案 1 :(得分:0)
var countryAvgs = countries
.Select(c => new { Id = c.CountryId, Area = c.city.Average(ct => (double)ct.sqkm)});
答案 2 :(得分:0)
试
countries.Sum(x => x.city.Sum(y => y.sqkm)) / countries.Sum(x => x.city.Count())
似乎在LinqPad中正常工作!