我认为我的搜索方法有问题,否则它应该有效

时间:2012-02-18 16:19:08

标签: c# list search

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

我认为我的代码是正确的,但是当我执行它时,我得到一个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;

        }
    }

1 个答案:

答案 0 :(得分:0)

您没有显示异常发生的哪一行(这会很方便),但您还没有显示studentClassesByDay已被实例化的位置。

那将是我要检查的第一个

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

  • l为空;
  • trg为空;
  • l.studentClassesByDay为空;或
  • AppData为空(虽然可能不是这样 - 它看起来像一个类)。

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

根据您的评论,错误的行是:

studentClassesByDay.Add(c);

几乎可以保证(可疑)您实际上没有实例化此变量。我会调查一下。