C# 定义一个类,类中有字符串和数组,如何给这个数组赋值呢?下面的赋值的方法要出错,。
定义:PersonModel这个类
public class PersonModel
{
public string id { get; set; } //字符串
public string userid { get; set; } //字符串
public List ImageNewModelList { get; set; } //数组
}
public class ImageNewModel
{
public string ImageLink { get; set; }
}
List _PersonModellList = new List();
_PersonModel.id = "001";
_PersonModel.userid = "002";
for (int i = 0; i < 8; i++)
{
_PersonModel.ImageNewModelList[i].ImageLink = "005"; //这里要出错,是不是要进行初始化或者实例化?不太明白?
}
你的代码有好几个问题
1.list是null
public List ImageNewModelList { get; set; }
这里你用了默认的get;set;方法,所以它并没有对应的private成员
你只给_PersonModellList 初始化了,可是ImageNewModelList 是null啊
你要这样写
public List ImageNewModelList { get; set; }=new List<PersonModel>();
_PersonModellList 没有使用,可以删掉
要不然你就得改成
get{return _PersonModellList;}set{_PersonModellList=value;}
这样也行
2.list赋值方式不正确
你的list即使new了,有实例了,可是它的第[i]项还是空,它的长度是0
你需要调用list的add方法往里面加项
3.你class套class,list虽然new过了,但是ImageNewModel 没有实例化
_PersonModel.ImageNewModelList.Add(new ImageNewModel())这样才对
(PersonModel)(_PersonModel.ImageNewModelList[i]).ImageLink = "005";
每个对象需要重新去在for循环中,new的,而不是直接一个对象一直操作
for (int i = 0; i < 8; i++)
{
PersonModel p=new PersonModel();
//...set代码
}
题主,你的报错是不是这个
附代码 你新学的应该用的是控制台应用(.netframework)
internal class Program
{
static void Main(string[] args)
{
List<PersonModel> _PersonModellList = new List<PersonModel>();
PersonModel _PersonModell = new PersonModel();
_PersonModell.id = "001";
_PersonModell.userid = "002";
List<ImageNewModel> _ImageNewModellList = new List<ImageNewModel>();
for (int i = 0; i < 8; i++)
{
ImageNewModel imageNewModel = new ImageNewModel();
imageNewModel.ImageLink = "005";
_ImageNewModellList.Add(imageNewModel);
}
_PersonModell.ImageNewModelList = _ImageNewModellList;
_PersonModellList.Add(_PersonModell);
foreach (var item in _PersonModellList)
{
Console.WriteLine(item.id);
Console.WriteLine(item.userid);
foreach (var item2 in item.ImageNewModelList)
{
Console.WriteLine(item2.ImageLink);
}
}
Console.ReadLine();
}
}
public class PersonModel
{
public string id { get; set; } //字符串
public string userid { get; set; } //字符串
public List<ImageNewModel> ImageNewModelList { get; set; } //数组
}
public class ImageNewModel
{
public string ImageLink { get; set; }
}