C#使用linq for chartist.js序列化数据

C#使用linq for chartist.js序列化数据,c#,linq,serialization,json.net,C#,Linq,Serialization,Json.net,我有以下清单: public class Prices { public int Year { get; set; } public decimal Price { get; set; } } List<Prices> List1 = new List<Prices>(); List1.Add(new Prices { Year = 2018, Price = 1.5m }); List1.

我有以下清单:

    public class Prices
    {
        public int Year { get; set; }
        public decimal Price { get; set; }
    }

    List<Prices> List1 = new List<Prices>();
    List1.Add(new Prices { Year = 2018, Price = 1.5m });
    List1.Add(new Prices { Year = 2017, Price = 1.2m });
    List1.Add(new Prices { Year = 2016, Price = 3.5m });

    //The linq query i'm trying to build
     var data1 = List1.Select(c=> new
         {
             labels = new List<Int64> {c.Year },
             series = new List<decimal> {
                 new List<decimal> { c.Price }
             }
         });


    // it's what i want to build
    var data2 = new {
      labels = new List<Int64> { 2018, 2017, 2016 },
      series = new List<decimal[]> {
               new decimal[] { 1.5m, 1.2m, 3.5m }
        }
    };

    var Json = JsonConvert.SerializeObject(data2);
    //Json => {"labels":[2018,2017,2016],"series":[[1.5,1.2,3.5]]}
公共类价格
{
公共整数年{get;set;}
公共十进制价格{get;set;}
}
List List1=新列表();
列表1.添加(新价格{年份=2018,价格=150万});
列表1.添加(新价格{2017年,价格=120万});
列表1.添加(新价格{2016年,价格=350万});
//我正在尝试构建的linq查询
var data1=List1.Select(c=>new
{
标签=新列表{c.Year},
系列=新列表{
新列表{c.价格}
}
});
//这就是我想要建造的
var data2=新{
标签=新列表{2018、2017、2016},
系列=新列表{
新十进制[]{1.5m,1.2m,3.5m}
}
};
var Json=JsonConvert.SerializeObject(data2);
//Json=>{“标签”:[201820172016],“系列”:[1.5,1.2,3.5]}
我希望使用linq将List1转换为Json输出:

{“标签”:[201820172016],“系列”:[1.5,1.2,3.5]}


创建一个包含
标签
价格
属性的新对象,其中每个属性都使用
填充。选择()
以选择适当的值

var data = new
{
    labels = List1.Select(x => x.Year),
    prices = new []{ List1.Select(x => x.Price) }
};
var Json = JsonConvert.SerializeObject(data);

创建一个包含
标签
价格
属性的新对象,其中每个属性都使用
填充。选择()
以选择适当的值

var data = new
{
    labels = List1.Select(x => x.Year),
    prices = new []{ List1.Select(x => x.Price) }
};
var Json = JsonConvert.SerializeObject(data);

扩展user3559349的答案,将其放入类或视图模型中

Public class ChartModel
{
    public ChartUnit[] Chart { get; set; } = Array.Empty<ChartUnit>();

    public string ToJson()
    {
        var data = new
        {
            lables = Chart.Select(s => s.Label),
            Value = Chart.Select(s => s.Value)
        };

        var json = JsonConvert.SerializeObject(data);
        return json;
    }
}
公共类图表模型
{
public ChartUnit[]图表{get;set;}=Array.Empty();
公共字符串ToJson()
{
var数据=新
{
标签=图表。选择(s=>s.Label),
值=图表。选择(s=>s.Value)
};
var json=JsonConvert.serialized对象(数据);
返回json;
}
}

展开user3559349的答案,将其放入类或视图模型中

Public class ChartModel
{
    public ChartUnit[] Chart { get; set; } = Array.Empty<ChartUnit>();

    public string ToJson()
    {
        var data = new
        {
            lables = Chart.Select(s => s.Label),
            Value = Chart.Select(s => s.Value)
        };

        var json = JsonConvert.SerializeObject(data);
        return json;
    }
}
公共类图表模型
{
public ChartUnit[]图表{get;set;}=Array.Empty();
公共字符串ToJson()
{
var数据=新
{
标签=图表。选择(s=>s.Label),
值=图表。选择(s=>s.Value)
};
var json=JsonConvert.serialized对象(数据);
返回json;
}
}