C# 为对象C中的每个项添加名称#

C# 为对象C中的每个项添加名称#,c#,C#,我从存储过程运行并使用sqlDataReader读取它,然后我有一个object[]结果,它将所有数据写入。数据如下所示: result: { {[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]}, ... } var input = new List<MyThing>(new[] { new MyThing { ID = 1, Date = DateT

我从存储过程运行并使用sqlDataReader读取它,然后我有一个object[]结果,它将所有数据写入。数据如下所示:

 result:  { {[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]}, ... }
var input = new List<MyThing>(new[] 
{ 
    new MyThing { ID = 1, Date = DateTime.Parse("1/18/2017"), Value = 20 }, 
    new MyThing { ID = 2, Date = DateTime.Parse("1/19/2017"), Value = 21 }, 
    new MyThing { ID = 3, Date = DateTime.Parse("1/20/2017"), Value = 22 } 
});
一个真正的例子是
{1,{1/18/2017},20},{2,{1/19/2017},21},{3,{1/20/2017},22}

我想为每个子对象中的每个项目添加项目名称,并将json返回到我的javascript中。因此,预期结果将是:

result = {{"ID":1, "Date":{1/18/2017},"value":20},
          {"ID":2,"Date":{1/19/2017},"value":21},
          {"ID":3,"Date":{1/20/2017},"value":22}}

有人知道正确的方法吗?使用LinqtoObject或lambda或其他什么?

以下是我的建议。创建结构:

struct MyThing
{
    public int ID { get; set; }
    public DateTime Date { get; set; }
    public int Value { get; set; }
}
然后按如下方式初始化列表:

 result:  { {[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]},{[0],[1],[2]}, ... }
var input = new List<MyThing>(new[] 
{ 
    new MyThing { ID = 1, Date = DateTime.Parse("1/18/2017"), Value = 20 }, 
    new MyThing { ID = 2, Date = DateTime.Parse("1/19/2017"), Value = 21 }, 
    new MyThing { ID = 3, Date = DateTime.Parse("1/20/2017"), Value = 22 } 
});
注意,您需要添加对
System.Web.Extensions
的引用,并使用指令添加

using System.Web.Script.Serialization;

听起来OP是在寻求一种自动化这个过程的方法,而不是手动将对象升级。