Skip to main content
 首页 » 编程设计

c#之如何同时声明和填充集合

2024年02月01日28jillzhang

我正在尝试以下操作:

    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" }, 
   .... 
} 

我建议您创建具有属性参数的构造函数;

public class ResultDTO 
{ 
    public int Id { get; private set; } 
    public string Text { get; set; } 
    public int AnswerId { get; set; } 
    public string AnswerText { get; set; } 
 
    public ResultDTO(int id, string _text, int ansId, string ansText) 
    { 
        Id=id; 
        Text = _text; 
        AnswerId = ansId; 
        AnswerText = ansText; 
    } 
} 

然后像这样初始化列表。

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属性公开可读并且不能在类外设置。