1

运行我的代码时,我在文本框的不同行上放置了几个字符串,但它中断说“Items.Add(item)”上存在空异常错误我不确定为什么会收到此错误,因为在 Visual Studio 中的字符串变量 item 不为空,它包含一个返回字符,所以我不确定这是否是一个问题.. 例如 item = "uno\r"。此外,Items 是一个字符串列表。有谁知道为什么我不断收到这个空异常?

    public List<string> Items;        


    public void getItemsFromTextBox(TextBox textbox)
    {
        string[] lines = textbox.Text.Split('\n');
        foreach (string item in lines)
        {
            if (!String.IsNullOrWhiteSpace(item))
                Items.Add(item);
        }
    }
4

5 回答 5

6

你还没有初始化你的列表,它是空的!添加

public List<String> Items = new List<String>();
于 2013-10-05T06:36:05.803 回答
1

只需尝试以下代码。我猜您的Items列表是全局列表和shared列表。所以最好检查 List 是否已初始化,或者如果没有,则先初始化并执行其余操作。

    public List<string> Items;        

    public void getItemsFromTextBox(TextBox textbox)
    {
        if(null == Items)
        {
          Items = new List<string>();
        }
        foreach (string item in textbox.Text.Split('\n'))
        {
            if (!String.IsNullOrWhiteSpace(item))
                Items.Add(item);
        }
    }
于 2013-10-05T06:48:19.227 回答
1

您必须创建列表项的实例。

利用

public List<String> Items = new List<String>();

或使用以下代码

public void getItemsFromTextBox(TextBox textbox)
{
    List<string> Items = !string.IsNullOrWhiteSpace(textbox.Text) ? textbox.Text.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List<string>();
}
于 2013-10-05T07:04:09.573 回答
1

您必须创建Items列表实例:

public void getItemsFromTextBox(TextBox textbox)
{
    Items = new List<string>();
    string[] lines = textbox.Text.Split('\n');
    foreach (string item in lines)
    {
        if (!String.IsNullOrWhiteSpace(item))
            Items.Add(item);
    }
}
于 2013-10-05T06:36:28.190 回答
0

确保您已实例化“项目”。

于 2013-10-05T06:37:38.387 回答