【问题标题】:Adding elements to List<> doesn't work [duplicate]将元素添加到 List<> 不起作用[重复]
【发布时间】:2015-02-27 08:56:27
【问题描述】:

我声明了一个 List,可以在整个班级中访问

List<article> data;

现在我正在使用一种方法来填充列表:

StreamReader sr = new StreamReader(filePath);

while (!sr.EndOfStream)
{
    string[] Line = sr.ReadLine().Split(';');

    article newArticle = new article();
    newArticle.articleNumber = Line[0];
    newArticle.description = Line[1];
    newArticle.articleId = Line[2];
    try
    {
        data.Add(newArticle);
    }
    catch(NullReferenceException ex)
    {
        // Nothing to do here
    }
} 

每次循环重复,newArticle-Object 包含他所有的元素,所以它绝对不为空。 但它不会添加到数据列表。 我错过了什么?

【问题讨论】:

  • data 怎么样?您是否在调用Add 方法之前初始化列表?你为什么要吞下 NullReferenceException ?
  • 它多久进入catch 块?
  • 他们说的是做:List
    data = new List
    ();
  • 为什么人们如此激烈地投票反对这个问题? @Marcel 描述了这个问题,他发布了他的代码,只是不清楚他在调试器中看到的响应。他的搜索可能会返回一个解决方案,但从问题来看,他似乎不确定是什么导致了问题。
  • @Bara'thorn:他抓到NullReferenceException 显然表明他知道发生了什么。对其进行简单搜索确实揭示了实际原因。而不是通过放置一个空的catch 来忽略它,他可以解决这个问题。此外,否决按钮提供了更多投反对票的理由。

标签: c# collections null


【解决方案1】:

为了将项目添加到列表中,您必须首先对其进行初始化。

替换:

List<article> data;

与:

List<article> data = new List<article>();

【讨论】:

  • 是的,我只是忘记了 :P 谢谢 :)
猜你喜欢
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
相关资源
最近更新 更多