C# 将LINQ Group By数据传递到新的对象列表中
我试图在C#中创建一个LINQ查询,它获取一个对象列表,对列表执行分组和计数,然后将结果传递到一个新的对象列表中 这是我目前的LINQ查询,它执行GROUPBY和count,但不将数据传输到我需要的列表中,而是一个匿名类型列表C# 将LINQ Group By数据传递到新的对象列表中,c#,linq,group-by,C#,Linq,Group By,我试图在C#中创建一个LINQ查询,它获取一个对象列表,对列表执行分组和计数,然后将结果传递到一个新的对象列表中 这是我目前的LINQ查询,它执行GROUPBY和count,但不将数据传输到我需要的列表中,而是一个匿名类型列表 var dataPoints = from e in evaluations.Take(20) group e.EvaluationID by e.description into g select ne
var dataPoints = from e in evaluations.Take(20)
group e.EvaluationID by e.description into g
select new { Profession = g.Key, Count = g.Count() };
dataPoints
变量返回匿名类型列表,数据如下所示:
我不想将数据返回到匿名类型列表中,而是想返回DataPoint
对象列表。下面是我的DataPoint
对象
public class DataPoint
{
public DataPoint(double y, string label)
{
this.Y = y;
this.Label = label;
}
[DataMember(Name = "y")]
public Nullable<double> Y = null;
[DataMember(Name = "label")]
public string Label;
}
非常感谢您的建议。要使属性初始值设定项正常工作,您需要一个无参数构造函数,并且您的字段应该是可访问的属性:
public class DataPoint
{
[DataMember(Name = "y")]
public Nullable<double> Y { get; set; };
[DataMember(Name = "label")]
public string Label { get; set; }
public DataPoint()
{
}
public DataPoint(double y, string label)
{
Y = y;
Label = label;
}
}
公共类数据点
{
[数据成员(Name=“y”)]
公共可空Y{get;set;};
[DataMember(Name=“label”)]
公共字符串标签{get;set;}
公共数据点()
{
}
公共数据点(双y,字符串标签)
{
Y=Y;
标签=标签;
}
}
现在,您的代码应该可以编译了,或者按照注释中的建议使用带参数的构造函数。使用新数据点(g.Count(),g.Key)
。
var dataPoints = from e in evaluations.Take(20)
group e.EvaluationID by e.description into g
select new DataPoint { Count = g.Count(), Profession = g.Key};
public class DataPoint
{
[DataMember(Name = "y")]
public Nullable<double> Y { get; set; };
[DataMember(Name = "label")]
public string Label { get; set; }
public DataPoint()
{
}
public DataPoint(double y, string label)
{
Y = y;
Label = label;
}
}