我有一个关于 LINQ 和聚合数据的问题。我有两个 csv 文件,里面装满了我用来练习的虚拟数据。第一个 csv 文件(因子)包含以下字段:邮政编码因子类型因子值样本数据31513,Type1,0.61904641331515,Type1,0.6201359931563,Type1,0.91298886531513,Type2,0.61904641331515,Type2,0.6201359931563,Type2,0.91298886531513,Type3,0.61904641331515,Type3,0.6201359931563,Type3,0.912988865第二个 csv 文件(县)包含以下字段:邮政编码县样本数据31513,应用31515,应用31563,应用31624,阿特金森31642,阿特金森31650,阿特金森31510,培根39870,贝克31034,鲍德温31059,鲍德温31061,鲍德温31062,鲍德温我正在尝试使用 LINQ 按县获得 FactorType 的平均值。我有一个查询,按县返回每个 ZipCode 的 FactorType,代码和输出屏幕截图如下。var query = from county in countyRecords join factor in factorRecords on county.Zipcode equals factor.Zipcode into factorGroup orderby county.County select new CountyFactor { cf_county = county, cf_factors = factorGroup } into result group result by result.cf_county.County;我的目标是获得每种因子类型的平均值,例如:县名平均类型 1平均类型2平均类型3我的想法是获取第一个查询的结果并在第二个查询中使用它们来获得这些结果,但我不知道该怎么做。下面的代码是我得到的,但不知道如何完成它。var query2 = from data in query group data by data.Key into averageGroup select new { average = averageGroup.Average() }感谢您花时间看这个!
2 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
countyRecords.Join( FactorRecords, c => c.ZipCode, f => f.ZipCode, (c, f) => new { County = c, Factor = f }).GroupBy(Factor.Type).Select( x=> new { x.key, x.Sum(Average) }).ToList( );
我不明白你是否需要所有平均值的总和。用 max 替换 sum 以获得最大平均值,最小值为最小平均值,平均值为它们的平均值。
- 2 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消