如何初始化另一个类的数组?

时间:2015-05-28 13:38:57

标签: c# asp.net json

我正在尝试将值初始化为Rootobject中的children数组,但它给了我错误。 - 我尝试创建类Child的对象,但它也不起作用,我只需要知道如何将值设置为包含其他值的另一个类的类型数组。感谢您的帮助。

public class Rootobject{

   public Child[] children { get; set; }
   public Data data { get; set; }
   public string id { get; set; }
   public string name { get; set; }
}
public class Data{
   //  public string name { get; set; }
}
public class Child{
   public Child1[] children { get; set; }
   public Data1 data { get; set; }
   public string id { get; set; }
   public string name { get; set; }
}

public class Data1{

public int playcount { get; set; }
public int area { get; set; }
}

public class Child1{

public object[] children { get; set; }
public Data2 data { get; set; }
public string id { get; set; }
public string name { get; set; }
}

public class Data2{

public string playcount { get; set; }
public string color { get; set; }
public string image { get; set; }
public int area { get; set; }
}

这是我初始化值的地方(我应该在孩子们写什么):

var RegisteredUsers = new List<Rootobject>();
RegisteredUsers.Add(new Rootobject() { children = { }, data = { }, 
                                       id = "102", name = "zaki" });

5 个答案:

答案 0 :(得分:0)

如果你想交一个数组,只需创建一个Child类型。

Child[] children = new Child[10];
//Then initialize each element.

在您的Child类中,它看起来像您期望的类型Child1,它与Child不同。这很可能会导致错误。

另外我不确定你为什么用java标记这个问题。

答案 1 :(得分:0)

是的,你的代码中有未初始化的数组。

要使其工作,请将数组更改为List

public List<Child>children { get; set; }

答案 2 :(得分:0)

类型Child1在您的应用程序的上下文中不存在。搜索它,并将其重命名为Child

答案 3 :(得分:0)

看起来很难看,但如果你真的想要......

var RegisteredUsers = new List<Rootobject>();
RegisteredUsers.Add(new Rootobject()
{
    children = new Child[] {
        new Child { id= "1", name="Ivan"},
        new Child { id= "2", name="Vladimir"}
    },
    data = { },
    id = "102",
    name = "zaki"
});

答案 4 :(得分:0)

如果你使用的是LinqPad,你可以在那里复制/粘贴这些代码并看到它正常工作

var RegisteredUsers = new List<Rootobject>();
RegisteredUsers.Add(new Rootobject() { children = { }, data = { }, 
                                   id = "102", name = "zaki" });
        RegisteredUsers.Dump();                        



                                   }


public class Rootobject{

public Child[] children { get; set; }
public Data data { get; set; }
public string id { get; set; }
public string name { get; set; }
}

public class Data{
   //  public string name { get; set; }
 }
public class Child{
  public Child1[] children { get; set; }
   public Data1 data { get; set; }
   public string id { get; set; }
   public string name { get; set; }
}

public class Data1{

public int playcount { get; set; }
public int area { get; set; }
}

public class Child1{

  public object[] children { get; set; }
  public Data2 data { get; set; }
  public string id { get; set; }
  public string name { get; set; }
}

公共类Data2 {

 public string playcount { get; set; }
 public string color { get; set; }
 public string image { get; set; }
 public int area { get; set; }