C# 值不能为null(异常)

C# 值不能为null(异常),c#,file,listbox,null,C#,File,Listbox,Null,我没有经历过这个错误,但突然出现了——不知道为什么。我试图解决它,但没有任何效果。错误发生在“genreList.Items.AddRange(trackList);”(代码的最后一行)。有人知道如何解决这个问题吗 private void readFile() { string[] lines = System.IO.File.ReadAllLines(>path<); for (int i = 0; i <= 10; i++)

我没有经历过这个错误,但突然出现了——不知道为什么。我试图解决它,但没有任何效果。错误发生在“genreList.Items.AddRange(trackList);”(代码的最后一行)。有人知道如何解决这个问题吗

    private void readFile()
    {
        string[] lines = System.IO.File.ReadAllLines(>path<);
        for (int i = 0; i <= 10; i++)
        {
            if (i == 2)
            {
                media[0, 0] = lines[i]; // General (title)
                System.Diagnostics.Debug.WriteLine(media[0, 0]); // Debug, checking values in array after each 'if'
            }
            if (i == 3)
            {
                media[0, 1] = lines[i]; // Introduction.wma (list)
                System.Diagnostics.Debug.WriteLine(media[0, 1]);
            }
            if (i == 5)
            {
                media[1, 0] = lines[i]; // Setup (title)
                System.Diagnostics.Debug.WriteLine(media[1, 0]);
            }
            if (i == 6)
            {
                media[1, 1] = lines[i]; // Calling Setup.wma (list)
                System.Diagnostics.Debug.WriteLine(media[1, 1]);
            }
            if (i == 8)
            {
                media[2, 0] = lines[i]; // Hint & Tips (title)
                System.Diagnostics.Debug.WriteLine(media[2, 0]);
            }
            if (i == 9)
            {
                media[2, 1] = lines[i]; // Big Bad John (1961) - Jimmy Dean.mp3 (list)
                System.Diagnostics.Debug.WriteLine(media[2, 1]);
            }
            if (i == 10)
            {
                media[2, 2] = lines[i]; // My Ding A Ling - Chuck Berry.mp3 (list)
                System.Diagnostics.Debug.WriteLine(media[2, 2]);
            }
        }
    }

    private void populateGenreList()
    {
        genreTitle.Text = media[0, 0];
        string[] trackList = new string[3];
        trackList[0] = media[0, 1];
        genreList.Items.AddRange(trackList);
    }
private void readFile()
{

string[]lines=System.IO.File.ReadAllLines(>path在使用AddRange时,需要避免添加包含null的值

trackList[0] = media[0, 1];
if(trackList != null)
{
        genreList.Items.AddRange(trackList);
}
在这方面,

genreList.Items.AddRange(trackList);
trackList不是空的,因为您在一行之前刚刚初始化它。此外,您可以使用AddRange方法添加包含空值的列表。因此trackList可能有3个空值,但仍然不应该看到空引用

但这种情况发生在List AddRange方法中


因此,在您的情况下,有一些自定义代码正在创建此异常。请定义genreList类和异常的堆栈跟踪。

tracklist将为null。.EDIT:另外,为了便于编程和您自己,请使用tracklist不为null。此外,您还可以使用addrange将具有null值的列表添加到列表中,除非它是扩展ded列表。为答案干杯。我更改了代码以尝试{genreList.Items.AddRange(trackList);}catch(异常e){},现在它可以工作了;)再次干杯genereList类的定义是什么?为什么会得到空引用?问题中的代码已经发布,除非genreList是引发某种ArgumentNullException的类。我不确定“定义”是什么意思。string[,]media=new string[4,3];-我就是这样声明的。