“附加”";选中复选框列表的项目值之后
本文关键字:列表 复选框 项目 之后 附加 quot | 更新日期: 2023-09-27 17:57:44
我有一个复选框列表项,其中包含列表项。保存表单时,所选值应保存到数据库中。看看我的逻辑。
string Type = null;
for (int i = 0; i < chbCourse.Items.Count; i++)
{
if (chbCourse.Items[i].Selected == true)
{
Type += chbCourse.Items[i].ToString() + ",";
}
}
它工作得很好,但由于",",也就是我放在两个值之间,它们彼此分开,但在最后一项中,它也会附加","。有没有办法删除最后一个","或插入"."最后一个,"
这样做有什么道理吗?
使用string.Join
和LINQ
:连接所有选定项目
Type = string.Join(",",
chbCourse.Items.Cast<ListItem>().Where(x => x.Selected).Select(x => x.Text));
由于string.Join
只在项之间添加分隔符,因此不会在末尾添加额外的逗号。
(此外,在ListItem
上调用ToString()会显示类类型;您必须使用Text
属性。)
void Main()
{
var a="1,2,3,";
a=a.TrimEnd(new [] {','});
Console.WriteLine (a); //1,2,3
}
对所选项目这样做:
string Type = string.Join(",", CheckBoxList1.Items.Cast<ListItem>().Where(a=>a.Selected).Select(a => a.Text));
if (!string.IsNullOrEmpty(Type)) // To add '.' at end
Type = Type + ".";
最简单的方法是使用String.Join
:
string Type = String.Join(",", chbCourse.Items);
如果也需要"."
string Type = String.Concat(String.Join(",", chbCourse.Items),".");
如果我想在最后一个字符上加点("."),那么我会这样做:
for (int i = 0; i < chbCourse.Items.Count; i++)
{
if (chbCourse.Items[i].Selected == true)
{
if (i == chbCourse.Items.Count - 1) Type += chbCourse.Items[i].ToString() + ".";
else
Type += chbCourse.Items[i].ToString() + ",";
}
}
string Type = null;
for (int i = 0; i < chbCourse.Items.Count; i++)
{
if (chbCourse.Items[i].Selected == true)
{
Type += chbCourse.Items[i].ToString() + ",";
}
}
if(Type != null)
Type = Type.TrimEnd(',');
尽量不要将类名用作变量名。
怎么样
string Type = null;
type = String.Join(",",
chbCourse.Items.Where(Function(x) x => x.Selected)
.Select(Function(y) y => y.ToString()).ToArray);