我下面有一个List,我试图结合T.name属性并总结T.score属性
数据
Name | score
-------------
Jon | 50
Jon | 100
Ash | 100
Ash | 75
期望的结果是
Jon | 150
Ash | 175
我能够在LINQ中执行此操作并创建具有所需结果的var
List<PieSeriesData> PiSeriesData = new List<PieSeriesData>();
var x = PiSeriesData.GroupBy(i => i.Name)
.Select(g => new { Id = g.Key, Total = g.Sum(i => i.Score) })
.ToList();
问题是我需要x作为List类型,这是HighCharts nuget所需要的。
答案 0 :(得分:1)
为什么不创建新类
public class PieSeriesRenderData
{
public string ID { get; set; }
public int Total { get; set; }
}
之后返回:
List<PieSeriesData> piSeriesData = new List<PieSeriesData>();
var x = piSeriesData.GroupBy(i => i.Name)
.Select(g => new PieSeriesRenderData { Id = g.Key, Total = g.Sum(i => i.Score) })
.ToList();
现在您将拥有List<PieSeriesRenderData>
的对象,您可以从Web服务将其作为Json返回,并且您将在ajax.successful方法中呈现高清图。
答案 1 :(得分:1)
据我所知,从聊天中您需要输出为List<PieSeriesData>
。您需要在PieSeriesData
而不是匿名类型中投射select
类的新对象:_请注意,您还需要分配存在的属性而不使用Id
之类的新属性和Total
:
List<PieSeriesData> PiSeriesData = new List<PieSeriesData>();
var x = PiSeriesData.GroupBy(i => i.Name)
.Select(g => new PieSeriesData {
Name = g.Key,
Score = g.Sum(i => i.Score)
}).ToList();
// Now x is of type: List<PieSeriesData>