如何将列表框中的所选项目添加到列表中以获取所选的用户名
我的代码:
List<String> lstitems = new List<String>();
foreach (string str in lstUserName.SelectedItem.Text)
{
lstitems.Add(str);
}
它显示错误,指出无法将char转换为字符串....如何将项目添加到列表或数组
答案 0 :(得分:7)
您需要使用SelectedItems
属性而不是SelectedItem
:
foreach (string str in lstUserName.SelectedItems)
{
lstitems.Add(str);
}
编辑:我刚刚注意到这是标记为asp.net - 我没有使用过webforms,但是看看文档似乎应该有用:
List<string> listItems = listBox.GetSelectedIndices()
.Select(idx => listBox.Items[idx])
.Cast<string>()
.ToList();
答案 1 :(得分:2)
我注意到你正在使用ASP。
对于标准C#,以下方法可行:
List<string> stringList = new List<string>();
foreach (string str in listBox1.SelectedItems)
{
stringList.Add(str);
}
答案 2 :(得分:1)
如果只有一个选定项目:
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);
}
答案 3 :(得分:0)
你也可以这样做
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);
}
答案 4 :(得分:0)
如果您使用按钮在字符串列表中添加所选的“项目”,请执行此操作。
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);
}
}
答案 5 :(得分:0)
您可以在一个操作中执行此操作:
IEnumerable<string> groupList = groupsListBox.SelectedItems.Cast<string>();
它也将始终适用于自定义对象:
IEnumerable<CustomObject> groupList = groupListBox.SelectedItems.Cast<CustomObject>();