2015-12-22 3 views
1

Мое требование в том, что элемент (текст из textBox), уже присутствующий в списке, просто не добавляет. Но часть else, которую я не могу использовать в моем цикле foreach, чтобы добавить item.here мой код. Помогите мне, как я могу добавить элемент, если элемент отсутствует в списке.добавление элемента в listBox

protected void Button1_Click(object sender, EventArgs e) 
{ 
     if (RadioButton1.Checked) 
     { 
      if (ListBox1.Items.Count == 0) 
      { 
       ListBox1.Items.Add(TextBox1.Text); 
       Label2.Text = "<b style='color:green'> item updated in the listbox </b>"; 
      } 
      else 
      { 
       foreach (ListItem li in ListBox1.Items) 
       { 
        if (li.Text.ToUpper() == TextBox1.Text.ToUpper()) 
        { 
         Label2.Text = "<b style='color:red'> access denied 
         break; 
        } 
       } 

      } 

     } 

    } 
+0

Пожалуйста, помогите ....... – chikun

ответ

2

Просто:

ListItem item = new ListItem(TextBox1.Text); 

if (!ListBox1.Items.Contains(item)) 
{ 
//Add item here 
} 
+0

Это показывает недопустимые аргументы .. Не работает для меня. , :( – chikun

+0

проверить мое редактирование, вы должны использовать 'Contains' с ListItem –

+0

Это сработало. Но проблема в том, что я не хочу добавлять дубликаты .. предположим, что я ввел« Hello ». Тогда он не должен принимать« Hello », в любом случае, поэтому я не могу использовать метод contains – chikun

0

Если вы используете Listbox от System.Windows.Controls, Квентин Роджер уже дал вам правильное решение. Я просто попробовал, чтобы увидеть , почему он не работает. Вы можете просто протестировать его в другом проекте:

ListBox lb = new ListBox(); 
lb.Items.Add("Test"); 
bool b = lb.Items.Contains("Test"); 

b будет правдой.

Извините, я знаю, что это должно быть в комментарии, а не в отдельном ответе, но У меня нет привилегии писать комментарии.

+0

Это сработало. Но проблема в том, что я не хочу добавлять дубликаты. Предположим, я ввел «Hello». Тогда он не должен принимать «Hello» в любом случае. Я не могу использовать метод contains – chikun

+0

У меня проблем нет, извините. Если вы хотите проверить, нет ли чего-то в списке, вы можете просто использовать «!» Перед вызовом: if (! Lb.Items .Contains ("s")) {..} - в этом случае «s» не входит в список, поэтому весь оператор будет истинным, и программа войдет в оператор if. Таким образом, вы могли бы просто написать if (! lb.Items.Contains ("Test")) {lb.Items.Add ("Test");}. Таким образом, тест будет добавлен, потому что его нет в списке. –

+0

Это будет только chec k если элемент «Тест» присутствует или нет. Если я войду в «tEst» или «tesT», тогда он примет. Кого я хочу избежать – chikun

0
bool status = false; 
    if (RadioButton1.Checked) 
    { 
     if (ListBox1.Items.Count == 0) 
     { 
      ListBox1.Items.Add(TextBox1.Text); 
      Label2.Text = "<b style='color:green'> item updated in the listbox </b>"; 
     } 
     else 
     { 
      foreach (ListItem li in ListBox1.Items) 
      { 
       if (li.Text.ToUpper() == TextBox1.Text.ToUpper()) 
       { 
        Label2.Text = "<b style='color:red'> access denied </b>"; 
        status = true; 
        break; 
       } 

      } 
      //ListItem item = new ListItem(TextBox1.Text); 
      //if (!ListBox1.Items.Contains(item)) 
      //{ 
      // ListBox1.Items.Add(TextBox1.Text); 
      // Label2.Text = "<b style='color:green'> item updated in the listbox </b>"; 
      //} 
      if (status == false) 
      { 
       ListBox1.Items.Add(TextBox1.Text); 
       Label2.Text = "<b style='color:green'> item updated in the listbox </b>"; 
      } 
     } 

    } 

здесь мое решение

Смежные вопросы