2013-03-25 83 views
0

方法来检查,如果列表框的项目存在:检查列表框项目从文本框的值存在

private bool ValueAlreadyInListLanguage(object vItem) 
    { 
     string valueTextBox = TextBoxLanguages.Text; 
     string valueListBox = vItem.ToString(); 

     return valueTextBox == valueListBox; 
    } 

enter image description here

SOLUTION

private bool ValueAlreadyInListLanguage(object vItem) 
    { 
     string valueTextBox = TextBoxLanguages.Text.Trim(); 
     string valueListBox = vItem.ToString(); 

     return valueTextBox.Equals(valueListBox, StringComparison.CurrentCultureIgnoreCase); 
    } 

现在,如果我救例如 “瑞典”到我的列表框中,我无法添加“瑞典语”,因为它已经存在。

+5

您知道'瑞典语'和'瑞典语'有区别吗? – Tomtom 2013-03-25 12:53:51

+0

@Tomtom,当然我知道,但我真的不知道如何使方法了解它.. – Kriistiian 2013-03-25 12:57:46

+1

@Kriistiian,如果你知道然后去下面的答案.......... – andy 2013-03-25 12:58:37

回答

2

替代修正而uppercasing或lowercasing是:

return valueTextBox.Equals(valueListBox,String.CurrentCultureIgnoreCase); 

我还放了装饰在这里:

string valueTextBox = TextBoxLanguages.Text.Trim(); 

因为输入文本末尾的空格会破坏相等性。

即“瑞典语”!=“瑞典语”

+0

你和coolmines的回答都是对的,但是这个更好,谢谢! – Kriistiian 2013-03-25 13:11:16

1

试试这个在您的比较:

return valueTextBox.ToLower() == valueListBox.ToLower(); 

正如有人在评论中指出 - Swedish不等于swedish - 它识别字母大小写。

+0

coolmines回答作品。不管怎么说,还是要谢谢你! – Kriistiian 2013-03-25 13:06:22

1

尝试:

private bool ValueAlreadyInListLanguage(object vItem) 
{ 
    return TextBoxLanguages.Text.ToLower().Equals(vItem.ToString().ToLower()); 
} 
+0

coolmines解答作品。不管怎么说,还是要谢谢你! – Kriistiian 2013-03-25 13:06:40

1

尝试做以下

string valueTextBox = TextBoxLanguages.Text.ToUpper(); 
    string valueListBox = vItem.ToString().ToUpper(); 
+0

coolmines answer works。不管怎么说,还是要谢谢你! – Kriistiian 2013-03-25 13:06:02

2
private bool ValueAlreadyInListLanguage(object vItem) 
{ 
    string valueTextBox = textBox1.Text; 
    string valueListBox = vItem.ToString(); 

    return valueTextBox.Equals(valueListBox, StringComparison.CurrentCultureIgnoreCase); 
} 
+0

这是一个正确的,它现在的作品。如果我将瑞典语添加到列表框中,我不能用小写字母添加“瑞典语”。谢谢! – Kriistiian 2013-03-25 13:05:42