创建一个对象并添加一个List <string>

时间:2016-08-10 12:13:45

标签: c#

我有一个类别类别:

public int id { get; set; }
public string catName { get; set; }
public List<string> subCat { get; set; }

我想创建一个这样的列表:

List<Category> list = new List<Category>();
Category cat = new Category(){ 1 ,"Text", new List<string>(){"one", "two", "three"}};
list.Add(cat);

我收到此错误消息的红色错误标记:

  

无法使用集合初始值设定项初始化类型'Category',因为它没有实现'System.Collection.IEnumerable'

任何帮助都会受到很大关注。

4 个答案:

答案 0 :(得分:14)

顺便说一下,你正在初始化它,它认为你正在尝试实现一个列表。请执行以下操作。

var category = new Category
{
    id = 1,
    catName = "Text",
    subCat = new List<string>(){"one", "two", "three"}
};

答案 1 :(得分:6)

有两种可能性可以实现这一目标。基本上你的思维方式是正确的。但你必须改变一下。 一种方法是使用Parameters创建构造函数,因此如果您创建此类的实例,则使用您的参数生成它。

 List<Category> list = new List<Category>();  
 Category cat = new Category( 1 ,"Text", new List<string>(){"one", "two","three" });  
 list.Add(cat);  

和构造函数

public Category(int  _id, string _name, List<string> _list){  
 id = _id;  
 catName = _name;  
  subCat = _list;
}  

或者

您可以在类中添加getter和setter方法。创建一个对象,然后设置变量

 List<Category> list = new List<Category>();  
 Category cat = new Category();  
 cat.id =  1;  
 cat.catName = "Text";  
 cat.subCat = new List<string>(){"one", "two","three" };  
 list.Add(cat);

答案 2 :(得分:2)

创建类别的对象并指定值

Category cat = new Category();
cat.id = 1,
cat.catName = "Text",
cat.subCat = new List<string>(){"one", "two", "three"};

list.Add(cat);

答案 3 :(得分:1)

使用普通构造函数执行该任务怎么样? e.g:

public Category(int id, String catName, List<String> subCat){
this.id = id;
this.catName = catName;
this.subCat = subCat;
}

在Category类中使用它,只需调用:

即可访问构造函数
List<Category> list = new List<Category>();
Category cat = new Category(1, "Text", new List<String>(){"one", "two", "three"});

希望这可以帮助你;)