我认为;it’我的搜索方法有问题,否则它应该可以工作

本文关键字:工作 有问题 it 方法 搜索 我的 | 更新日期: 2023-09-27 18:25:07

我试图搜索一个列表,然后提取其中的一些对象,将它们放入另一个列表中,并将列表写入文件。

我认为我的代码是正确的,但当我执行它时,我会得到一个NullReference异常。如果有人能检查我的代码,我将非常感激。

这是我使用的搜索方法的代码

public void Search( string day)
{
    foreach (Classes c in studentClasses)
    {
        if (c.Day == day)
        {
            studentClassesByDay.Add(c);
        }
    }
}

这是将新列表添加到文件的代码

private void btnDay_Click(object sender, EventArgs e)
    {
        SelectDayForm selectDay = new SelectDayForm();
        if (selectDay.ShowDialog() == DialogResult.OK)
        {
            l.Search(selectDay.theDay);
            trg.GenerateSortedListReport(l.studentClassesByDay, AppData.byDay);
            MessageBox.Show("A list of sorted student classes written to file " + AppData.byDay+ ".");
           // txtDay.Text =selectDay.theDay;
        }
    }

我认为;it’我的搜索方法有问题,否则它应该可以工作

您还没有显示异常发生在哪一行(这很方便),但也没有显示studentClassesByDay在哪里实例化。

这将是我检查的第一件事情。

你展示的代码中唯一的可能性是:

  • l为空
  • trg为空
  • l.studentClassesByDay为空;或
  • AppData为null(尽管可能不是这样——它看起来像一个类)

只需在每次尝试取消引用之前放置一些调试语句(或调试器中的断点)并检查值。

根据您的评论,错误线路为:

studentClassesByDay.Add(c);

几乎可以保证(正如怀疑的那样)您实际上没有实例化这个变量。我会调查的。