如何在ASP.NET C#中使用foreach获取CheckBoxList中所选项的值?

Ami*_*ban 70 c# asp.net foreach list checkboxlist

我有一个像这样的CheckBoxList:

<asp:CheckBoxList ID="CBLGold" runat="server" CssClass="cbl">
    <asp:ListItem Value="TGJU"> TG </asp:ListItem>
    <asp:ListItem Value="GOLDOZ"> Gold </asp:ListItem>
    <asp:ListItem Value="SILVEROZ"> Silver </asp:ListItem>
    <asp:ListItem Value="NERKH"> NE </asp:ListItem>
    <asp:ListItem Value="TALA"> Tala </asp:ListItem>
    <asp:ListItem Value="YARAN"> Sekeh </asp:ListItem>
</asp:CheckBoxList>
Run Code Online (Sandbox Code Playgroud)

现在我想使用foreach从此CheckBoxList获取所选项的值,并将值放入列表中.

注意:我希望代码简短.

Tim*_*ter 185

请注意,我更喜欢简短的代码.

List<ListItem> selected = CBLGold.Items.Cast<ListItem>()
    .Where(li => li.Selected)
    .ToList();
Run Code Online (Sandbox Code Playgroud)

或者简单地说foreach:

List<ListItem> selected = new List<ListItem>();
foreach (ListItem item in CBLGold.Items)
    if (item.Selected) selected.Add(item);
Run Code Online (Sandbox Code Playgroud)

如果你只想要ListItem.Value:

List<string> selectedValues = CBLGold.Items.Cast<ListItem>()
   .Where(li => li.Selected)
   .Select(li => li.Value)
   .ToList();
Run Code Online (Sandbox Code Playgroud)


mre*_*ros 10

下午好,您可以随时使用一点LINQ获取所选列表项,然后根据结果执行您想要的操作:

var selected = CBLGold.Items.Cast<ListItem>().Where(x => x.Selected);
// work with selected...
Run Code Online (Sandbox Code Playgroud)


Ari*_*ari 10

        foreach (ListItem item in CBLGold.Items)
        {
            if (item.Selected)
            {
                string selectedValue = item.Value;
            }
        }
Run Code Online (Sandbox Code Playgroud)