C#将列表添加到类对象

时间:2019-12-01 19:57:33

标签: c# asp.net-core

我有一堂课,有一个聚会和一个帐户列表。

public class Holder
{
    public string Party { get; set; }
    public List<string> AccountList { get; set; }
}

在我的程序中,我有一个列表来保存我的AccountList

List<string> fulls = new List<string>();
fulls.Add("Bank1");
fulls.Add("Bank2");
fulls.Add("Bank3");

并且我已经初始化了我的课程public List<Holder> holderFulls{ get; set; }

我正在尝试为其添加一些值:

holderFulls.Add(new PivotFull { Party="John", AccountList=fulls });

但是我一直收到此错误?

  

对象引用未设置为对象的实例。

3 个答案:

答案 0 :(得分:0)

您试图在列表中添加未实例化的项目。您的public List<Holder> holderFulls{ get; set; }是一个属性,只有在实例化该类后才能访问该属性,因此,如果您想像使用该属性那样使用该属性,则可以这样初始化它。 public List<Holder> holderFulls{ get; set; } = new List<Holder>();

希望这会有所帮助。

答案 1 :(得分:0)

您已经声明了变量holderFulls,但没有初始化了它。您应该首先将其初始化为:

public List<Holder> holderFulls{ get; set; } = new List<Holder>();

或在添加之前将其初始化:

public List<Holder> holderFulls{ get; set; }
...
holderFulls = new List<Holder>();
holderFulls.Add(new PivotFull { Party="John", AccountList=fulls });

还请注意,您的列表的类型为Holder(List<Holder>),但是您要添加的类型为PivotFull的项目,尽管当前问题并非如此,但我认为值得一提。 / p>

答案 2 :(得分:0)

如果您使用的是任何较旧的.NET框架无法处理内联属性初始化,请在无参数构造函数中添加初始化代码,例如:

public class Holder
{
    public string Party { get; set; }
    public List<string> AccountList { get; set; }
    public Holder()
    {
        this.AccountList = new List<string>();
    }
}