C# 如何同时声明和填充集合?

C# 如何同时声明和填充集合?,c#,C#,我正在尝试以下方法: public class ResultDTO { public int Id { get; set; } public string Text { get; set; } public int AnswerId { get; set; } public string AnswerText { get; set; } } List<ResultDTO> result1 = n

我正在尝试以下方法:

    public class ResultDTO
    {
        public int Id { get; set; }
        public string Text { get; set; }
        public int AnswerId { get; set; }
        public string AnswerText { get; set; }
    }

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO () { Id:1, Text: "abc", AnswerId: "1", AnswerText: "Aab1" },
   new ResultDTO () { Id:1, Text: "abc", AnswerId: "2", AnswerText: "Aab2" },
   new ResultDTO () { Id:1, Text: "abc", AnswerId: "3", AnswerText: "Aab3" },
   new ResultDTO () { Id:1, Text: "def", AnswerId: "4", AnswerText: "Aab4" },
   new ResultDTO () { Id:1, Text: "def", AnswerId: "5", AnswerText: "Aab5" },
   new ResultDTO () { Id:1, Text: "def", AnswerId: "6", AnswerText: "Aab6" }
}

这在IDE中给了我很多语法错误。有人能告诉我哪里做错了吗?

这不是JSon对象和数组。可以使用=运算符指定属性

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 1, AnswerText= "Aab1" },
   ....
}
然后像这样初始化列表

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO (1,"abc",1,"Aab1"),
   new ResultDTO (1,"abc",2,"Aab2"),
   new ResultDTO (1,"abc",3,"Aab3"),
   ....
}

当您将属性指定为只读时,这将给您带来一些优势。看看上面的类,我已经声明Id属性是公开可读的,不能设置为类之外。

这不是JSon对象和数组。可以使用=运算符指定属性

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 1, AnswerText= "Aab1" },
   ....
}
然后像这样初始化列表

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO (1,"abc",1,"Aab1"),
   new ResultDTO (1,"abc",2,"Aab2"),
   new ResultDTO (1,"abc",3,"Aab3"),
   ....
}

当您将属性指定为只读时,这将给您带来一些优势。查看上面的类,我已声明Id属性可公开读取,并且不能在类之外设置。

初始化类时,需要使用=而不是:

    public class ResultDTO
    {
        public int Id { get; set; }
        public string Text { get; set; }
        public int AnswerId { get; set; }
        public string AnswerText { get; set; }
    }

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 1, AnswerText= "Aab1" },
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 2, AnswerText= "Aab2" },
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 3, AnswerText= "Aab3" },
   new ResultDTO () { Id=1, Text= "def", AnswerId= 4, AnswerText= "Aab4" },
   new ResultDTO () { Id=1, Text= "def", AnswerId= 5, AnswerText= "Aab5" },
   new ResultDTO () { Id=1, Text= "def", AnswerId= 6, AnswerText= "Aab6" }
}

初始化类时,需要使用=而不是:

    public class ResultDTO
    {
        public int Id { get; set; }
        public string Text { get; set; }
        public int AnswerId { get; set; }
        public string AnswerText { get; set; }
    }

List<ResultDTO> result1 = new List<ResultDTO> () {
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 1, AnswerText= "Aab1" },
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 2, AnswerText= "Aab2" },
   new ResultDTO () { Id=1, Text= "abc", AnswerId= 3, AnswerText= "Aab3" },
   new ResultDTO () { Id=1, Text= "def", AnswerId= 4, AnswerText= "Aab4" },
   new ResultDTO () { Id=1, Text= "def", AnswerId= 5, AnswerText= "Aab5" },
   new ResultDTO () { Id=1, Text= "def", AnswerId= 6, AnswerText= "Aab6" }
}

Change:to=。如果需要,甚至可以在调用零参数构造函数并使用集合初始值设定项或对象初始值设定项语法时省去空括号,因此new Xxx{…,…,…}是new Xxx{…,…,…}的缩写。Change:to=。如果需要,当调用零参数构造函数并使用集合初始值设定项或对象初始值设定项语法时,甚至可以省略空括号,因此new Xxx{…,…,…}是new Xxx{…,…,…}的缩写。