C# 将LINQ Group By数据传递到新的对象列表中

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

我试图在C#中创建一个LINQ查询,它获取一个对象列表,对列表执行分组和计数,然后将结果传递到一个新的对象列表中

这是我目前的LINQ查询,它执行GROUPBY和count,但不将数据传输到我需要的列表中,而是一个匿名类型列表

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;
    }
}