【问题标题】:Insert list in listbox在列表框中插入列表
【发布时间】:2013-03-12 19:43:56
【问题描述】:

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

【问题讨论】:

  • 你需要为列表分配内存 测试现在写入它的 null 并且你不能在 null 中添加值。
  • something a = something iets(); 看起来很可疑。我不希望它编译
  • 如果您输入 C#,我们就会知道您的意思...

标签: c# list class listbox


【解决方案1】:

您必须在某个时间点初始化testing,然后才能访问它。

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

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

并且正如上面的 cmets 所指出的,替换

something a = something iets();

下面这个。

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

【讨论】:

  • 啊,我忘了重命名最后一个单词。某事 a = 新的某事();很抱歉,谢谢你,我会试着用你的例子进一步发展
【解决方案2】:

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

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

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

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

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

【讨论】:

  • 非常感谢,我知道的如何实现数组或列表到其他对象(如列表框文本框等)的方法越多……越好。非常感谢您的帮助。
【解决方案3】:

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

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

【讨论】:

  • 啊,天哪.. 谢谢你,现在我明白为什么我收到“非实例”错误是因为我没有初始化它。好吧,有一天我们都必须/必须学习错误xD谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 2018-06-16
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多