我想删除第一个逗号。有没有办法删除循环的逗号?
这是我的代码:
foreach (var field in tablefields.Items)
{
if (m_datacount < datatype.Items.Count)
{
d_type = datatype.Items[m_datacount].ToString();
m_datacount++;
}
richTextBox1.Text = richTextBox1.Text + "\t,@" + field + " " + d_type + "\n";
datatype.ResetText();
}
m_datacount = 0;
输出:
,@id uniqueidentifier
,@title varchar
,@active_flag bit
,@created_by_id uniqueidentifier
,@created_by_system_code varchar
,@created_date_time datetime
,@modified_by_id uniqueidentifier
,@modified_by_system_code varchar
,@modified_date_time datetime
答案 0 :(得分:2)
Why reinvent the wheel....
只需使用String.Join
string result = String.Join(", ", myarray);
例如
string[] myarray = { "Firstuser", "Seconduser" };
所以result
将是"Firstuser, Seconduser"
,
答案 1 :(得分:2)
我会使用String.Join
。由于您对另一个tablefields
为ListBox
的答案进行了评论,因此可以使用
var strings = tablefields.Items.Cast<object>().Select(o => o.ToString());
richTextBox1.Text = String.Join(Environment.NewLine + ",", strings);
使用此示例数据进行测试:
tablefields.Items.AddRange(new ListBox.ObjectCollection(tablefields, new[]{"id","spid","charge_type_rcd","name_e","active_status"}));
输出:
id
,spid
,charge_type_rcd
,name_e
,active_status
您还可以使用可读性较差的StringBuilder
,但如果您有许多项目可以提高效率:
StringBuilder sb = new StringBuilder();
foreach (var item in tablefields.Items)
sb.AppendLine(item.ToString()).Append(',');
if (sb.Length > 0) sb.Length--; // to remove the last comma
richTextBox1.Text = sb.ToString();
答案 2 :(得分:0)
TrimEnd
方法可用于从字符串中删除尾随字符:
richTextBox1.Text = richTextBox1.Text.TrimEnd(',');
答案 3 :(得分:0)
您可以使用下面提到的代码
richTextBox1.Text = richTextBox1.Text.Substring(0,richTextBox1.Text.Length-1);
答案 4 :(得分:0)
field2 的目的是什么?它没有在你的代码中使用......
如果你正在使用foreach循环,为什么要使用计数器( m_fieldcount )?
tablefields.ResetText(); 做什么?
无论如何,试试这个:
richTextBox1.Text = String.Join("\n\t,", tablefields.Items.Select(a=>a.ToString()).ToArray());
答案 5 :(得分:-1)
richTextBox1.Text + "" + t_fields + "\n\t,".Remove(richTextBox1.Text.Lenght - 1);
检查还删除最后一个索引。使用Remove(index)