int countSelected = ListBoxMembers.Items.Cast<ListItem>().Where(i => i.Selected).Count();
string groupName = txt_GroupName.Text;
for (int counter = 0; counter < ListBoxMembers.Items.Count; counter++)
我在列表中有20个项目,当我只选择2个ListBoxMembers.Items.Count shouws 20并且Countselected为0
我试过这个int count = ListBoxMembers.GetSelectedIndices()。length; system.web.ui.controls.listbox不包含所选项的定义,并且没有扩展方法selevted items acceptin first argument error
<asp:ListBox ID="ListBoxMembers" runat="server" SelectionMode="Multiple" CssClass="style102"
ToolTip="Press ctrl to select multiple users" DataValueField="FirstName"></asp:ListBox>
答案 0 :(得分:3)
只需使用ListBox内置的功能......不需要Linq。 (对于WinForms)
int countSelected = ListBoxMembers.SelectedItems.Count;
编辑:(因为OP添加到问题中,它似乎与ASP.NET有关)
int countSelected = 0;
foreach(ListItem li in ListBoxMembers.Items)
if(li.Selected)
countSelected++;
我不确定为什么Linq声明不起作用。它当然应该是......如果你明确包括真的有什么区别吗? i => i.Selected == true
答案 1 :(得分:2)
您的代码看起来不错,但您可以尝试:
int count = ListBoxMembers.GetSelectedIndices().Length;
答案 2 :(得分:0)
应该有类似listBoxMembers.SelectedItems的东西,它返回所选项目的列表。所以你可以做listBoxMembers.SelectedItems.count。现在这是在VB.Net中,但对于C#
应该有类似的东西