【问题标题】:how to add the selected item from a listbox to list <string> in c#如何将列表框中的选定项目添加到c#中的列表<string>
【发布时间】:2010-06-29 12:08:59
【问题描述】:

如何将列表框中的选定项目添加到列表中以获取选定的用户名

我的代码:

        List<String> lstitems = new List<String>();

        foreach (string str in lstUserName.SelectedItem.Text)
        {
            lstitems.Add(str);
        }

它告诉我错误说不能将字符转换为字符串....如何将项目添加到列表或数组

【问题讨论】:

标签: c# asp.net arrays listbox


【解决方案1】:

您需要使用SelectedItems 属性而不是SelectedItem

foreach (string str in lstUserName.SelectedItems) 
{ 
    lstitems.Add(str); 
} 

编辑:我刚刚注意到它被标记为 asp.net - 我没有太多使用网络表单,但查看文档似乎应该可以工作:

List<string> listItems = listBox.GetSelectedIndices()
    .Select(idx => listBox.Items[idx])
    .Cast<string>()
    .ToList();

【讨论】:

  • 如果他使用 ASP.NET 并正确绑定,而不是将整个 Item 转换为字符串,OP 可能只需要 Item 中的值。
【解决方案2】:

我注意到您正在使用 ASP。

对于标准 C#,以下方法可行:

    List<string> stringList = new List<string>();
    foreach (string str in listBox1.SelectedItems)
    {
        stringList.Add(str);
    }

【讨论】:

    【解决方案3】:

    如果只有一个选中项:

    List<String> lstitems = new List<String>();
    
    lstitems.Add(lstUsername.SelectedItem.Value);
    

    这是一种获得多项选择的方法,因为System.Web.UI.WebControls.ListBox 不支持 SelectedItems:

    // Retrieve the value, since that's usually what's important
    var lstitems = lstUsername.GetSelectedIndices()
                              .Select(i => lstUsername.Items[i].Value)
                              .ToList();
    

    或者没有 LINQ(如果你还在使用 2.0):

    List<string> lstitems = new List<string():
    
    foreach(int i in lstUsername.GetSelectedIndices())
    {
        lstitems.Add(lstUsername[i].Value);
    }
    

    【讨论】:

      【解决方案4】:

      你也可以这样做

       List<String> lstitems = new List<String>();
      
              for (int i = 0; i < ListBox1.Items.Count; i++)
              {
                  if (ListBox1.Items[i].Selected)
                      lstitems.Add(ListBox1.Items[i].Value);
              }
      

      【讨论】:

        【解决方案5】:

        如果您使用按钮在字符串列表中添加选定的“项目”,请执行此操作。

            private void button1_Click(object sender, EventArgs e)
            {
                List<string> selectedItems = new List<string>();
        
                string item = listBox1.SelectedItem.ToString();
        
                if (!selectedItems.Contains(item))
                {
                    selectedItems.Add(item);
                }
            }
        

        【讨论】:

          【解决方案6】:

          您可以在一个操作中完成此操作:

          IEnumerable<string> groupList = groupsListBox.SelectedItems.Cast<string>();
          

          它也总是适用于自定义对象:

          IEnumerable<CustomObject> groupList = groupListBox.SelectedItems.Cast<CustomObject>();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-04-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多