2013-10-05 52 views
1

当我运行我的代码时,我把几个字符串放在文本框的不同行上,但它断言“Items.Add(item)”上有一个空的异常错误我不确定为什么我得到 这个错误,因为在visual studio变量项中的字符串不为空它包含 返回字符,因此我不确定这是否是问题..例如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); 
     } 
    } 
+1

的'Items'集合是未初始化。 –

回答

6

您还没有初始化您的清单,它是空的!添加

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

谢谢,我是个假人哈 – user977154

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); 
    } 
} 
0

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

1

请尝试下面的代码。我猜你的Items列表是全局列表和shared列表。因此,最好检查列表是否已初始化,如果没有,则先初始化,然后执行其余的事情。

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); 
     } 
    } 
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>(); 
}