我有一个类别类别:
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'
任何帮助都会受到很大关注。
答案 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"});
希望这可以帮助你;)