添加到类中的列表

May*_*lor 2 c# class list

我有这门课

public class User
{
   private string _name;
   public string UserName { get; set; }       
   public List<int> ControlNumber { get; set; }
   public User (string username)
   {
       _name = username;
   }
   public User()
   {
   }

}
Run Code Online (Sandbox Code Playgroud)

而这个功能填补了这个阶级.

User UserClass = new User(e.Key); //e.Key = user's name

public static void FillUserListClass(DataTable dt, ref UserClass)

{
    try
    {

        for (int ctr = 0; ctr < dt.Rows.Count; ctr++)
        {
            var row = dt.Rows[ctr];
            var userName = row["User"].ToString();

            if (UserList.ContainsKey(userName))
            {
                UserList[userName].Add(Convert.ToInt32(row["ControlNumber"]));
            }
            else
            {
                _user.UserName = row["User"].ToString();
                _user.ControlNumber.Add(Convert.ToInt32(row["ControlNumber"]));

            }
              //print out
            Console.WriteLine("UserList Class: ");
            Console.WriteLine(_user.UserName);
            Console.WriteLine(_user.ControlNumber);


        }
    }
    finally
    {
        //conn.Close();
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,在第一_user.ControlNumber.Add(Convert.ToInt32(row["ControlNumber"]));行我得到"对象引用未设置为对象的实例".错误.有帮助吗?

我要做的是为每个用户创建一个包含用户控件号的类.然后我希望将所有这些类放入字典中以供参考.

Mik*_*sen 16

您需要在构造函数中初始化列表:

   public User (string username) : this()
   {
       _name = username;
   }
   public User()
   {
      this.ControlNumber = new List<int>();
   }
Run Code Online (Sandbox Code Playgroud)

否则,ControlNumber其默认值为null.