在列表框中插入列表

时间:2013-03-12 19:43:56

标签: c# list class listbox

我是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); }
        }
    }
}

3 个答案:

答案 0 :(得分:3)

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

也许你可以在某个类中添加一个构造函数。

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

并按上述评论中的指示,替换

something a = something iets();

以下。

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

答案 1 :(得分:2)

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

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

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

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

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

答案 2 :(得分:1)

你的班级“某事”从不初始化列表。你应该做的就是这个。

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();

相关问题