我有一个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);
答案 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文本属性长度的长度。