“附加”";选中复选框列表的项目值之后

本文关键字:列表 复选框 项目 之后 附加 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.JoinLINQ:连接所有选定项目

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);