gpt4 book ai didi

c# - 从 .c#.net 中的一堆复选框中选择复选框

转载 作者:太空狗 更新时间:2023-10-29 22:52:44 26 4
gpt4 key购买 nike

c#.NET、Visual Studio、Windows Form Application下遇到的问题

我有一堆复选框以一种形式和一个面板随机放置。因此,如果在表单中选择了任何 checkbox,则应该将其值相加。

底线:与其使用大量“If-else 循环”,不如评估其是否已被检查。我想使用“for 循环”来简化它。

有没有我可以使用的 Checkbox group name 类型的功能???

我想编写这样的代码:

for(int i=0;i<checkboxes.length;i++)
{
string str;
if(chkbox.checked)
{
str+=chkbox.value;
}
}

checkboxes 是组名。

最佳答案

您可以使用简单的 LINQ 查询

var checked_boxes = yourControl.Controls.OfType<CheckBox>().Where(c => c.Checked);

哪里yourControl是包含您的复选框的控件。


checked_boxes现在是一个实现 IEnumerable<CheckBox> 的对象表示查询。通常你想用 foreach 遍历这个查询循环:

foreach(CheckBox cbx in checked_boxes) 
{
}

您还可以通过调用 List<Checkbox> 将此查询转换为列表 ( .ToList() ) ,在 checked_boxes 上或直接在 Where(...) 之后.


因为你想连接 Text复选框的单个字符串,你可以使用 String.Join .

var checked_texts = yourControl.Controls.OfType<CheckBox>()
.Where(c => c.Checked)
.OrderBy(c => c.Text)
.Select(c => c.Text);

var allCheckedAsString = String.Join("", checked_texts);

我还添加了一个 OrderBy子句以确保复选框按其 Text 排序.

关于c# - 从 .c#.net 中的一堆复选框中选择复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13835416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com