我有两个列表框控件Listbox1和Listbox2。我想获得从c#中的Listbox1中选择的Listbox2的项目数?假设我在Listbox1中共有7个项目,而我在Listbox2控件中只选择了3个项目。我想在C#中获取Listbox2的项目数?
答案 0 :(得分:2)
不知道为什么没有人使用Linq。
@Riya:我理解你的要求,你想要列表框2中存在于ListBox2项中的 SelectedItems的计数。如果是这样的话。
var filteredListCount = ListBox2.Items
.Cast<ListItem>()
.Where(li =>
ListBox1.Items
.Cast<ListItem>()
.Where(item => item.Selected)
.Select(item => item.Text).Contains(li.Text))
.Count();
答案 1 :(得分:1)
更改选择时循环选择项目
这样的事情:
int count = 0;
foreach(string itemListbox2 in listBox2.Items)
{
if (itemListbox2.Selected)
{
foreach(string itemListbox1 in listbox1.Items)
{
if (itemListbox1.Selected)
{
if(itemListbox1.Equals(itemListbox2))
{
count++;
break;
}
}
}
}
}
答案 2 :(得分:0)
您可以循环使用ListBox1中的所有选定项目,并在循环内部搜索ListBox2中具有相同值的项目,如果选中它,则会递增计数器。
答案 3 :(得分:0)
asp.net中的列表框没有SelectedItems。因此循环遍历Items并检查它们是否被选中。如果是这样,请在另一个列表中找到具有相同值的项目。如果找到相应的项目,请计算它。像这样:
int count = 0;
foreach (ListItem item in secondListBox.Items)
{
if (item.Selected)
{
ListItem itemWithSameValue = firstListBox.Items.FindByValue(item.Value);
if (itemWithSameValue != null)
{
count++;
}
}
}