循环后删除文本

时间:2017-03-23 12:40:07

标签: c# string

我有一个for循环,在字符串的末尾添加了radiobutton文本。这是代码:

for (int i = 0; i < listView1.CheckedItems.Count; i++)
                {
                    sqlQry.Text += listView1.CheckedItems[i].Text + radioButton9.Text;
                }  

有没有办法在循环结束后修剪radioButton9.Text

类似的东西:

sqlQry.Text = sqlQry.Text.TrimEnd(',');    

现在,结果类似于:&#34; A和B和C以及&#34;
我希望它是:&#34; A和B以及C&#34;
我确实尝试过我提到的代码,但我不能使用:

sQlQry.Text=sqlQry.Text.TrimEnd(radioButton9.Text);

4 个答案:

答案 0 :(得分:6)

您可以使用string.Join

sqlQry.Text = string.Join(radioButton9.Text, listView1.CheckedItems.Cast<ListViewItem>().Select(x => x.Text));

答案 1 :(得分:1)

使用不同的逻辑要容易得多,以免首先将分隔符放在最后。

for (int i = 0; i < listView1.CheckedItems.Count; i++)
{
   if(i != 0)
   {
      // Put separator in before this thing 
      // when this is not the first thing we add.
      sqlQry.Text += radioButton9.Text;
   }
   sqlQry.Text += listView1.CheckedItems[i].Text;
}  

答案 2 :(得分:1)

您可以获取radioButton9.Text的长度并执行子串  你的sqlQry.Text

sqlQry.Text.Substring(0, sqlQry.Text.Length - radioButton9.Text.Length);

答案 3 :(得分:1)

简单解决方案:string.Substring(startIndex, length)

例如:sqlQry.Substring(0, sqlQry.Length - /*fixedLength*/ radioButton9.Text.Length)

返回一个字符串,从终点开始取出固定数量的字符。更新了取消radioButton9文本属性长度的长度。