在列表框中插入列表

本文关键字:列表 插入列 插入 | 更新日期: 2023-09-27 18:03:47

我是c#的新手,我正在尝试在c#中探索,但是我尝试在列表框中添加列表。

我遇到的错误是:Object reference not set to an instance of an object.知道怎么解决这个问题吗?

namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        something a = something iets();
        public Form1()
        {
            InitializeComponent();
        }
// part1
        class something {
            public List<string> testing { get  ; set; }
        }
// part2
        private void button1_Click(object sender, EventArgs e)
        {
            a.testing.Add("programming");
            a.testing.Add("over");
            a.testing.Add("something");

            foreach (string i in a.testing)
            { listBox1.Items.Add(i); }
        }
    }
}

在列表框中插入列表

您必须在访问testing之前的某个时刻初始化它。

也许你可以给something类添加一个构造函数。

public something()
{
  testing = new List<string>();
}

和上面的注释所指出的,替换

something a = something iets();

something a = new something(); //this should be the correct thing.

我认为你得到NullReferenceException的原因是something类中的字符串列表未初始化。您可以定义一个无参数构造函数并在其中初始化列表。

public something()
{
    testing = new List<string>();
}

您可能还想知道类名和属性名的第一个字母通常是大写的(例如,class Something而不是class something)。

此外,您可以使用AddRange方法,而不是在foreach循环中逐个添加字符串。

listbox1.Items.AddRange(a.testing.ToArray());

你的类"something"从未初始化List。你应该这样做。

class something{
private List<string> _list;
public something(){
    _list = new List<string>();
}
public List<string> testing {get{return _list;} set{_list = value;}}

}

或者在a.testing. add()行之前执行a.testing = new List();