如何在for循环中删除逗号?

时间:2014-07-01 07:27:08

标签: c# for-loop

我想删除第一个逗号。有没有办法删除循环的逗号?

这是我的代码:

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

6 个答案:

答案 0 :(得分:2)

Why reinvent the wheel....

只需使用String.Join

即可
string result = String.Join(", ", myarray);

例如

string[] myarray = { "Firstuser", "Seconduser" };

所以result将是"Firstuser, Seconduser"

答案 1 :(得分:2)

我会使用String.Join。由于您对另一个tablefieldsListBox的答案进行了评论,因此可以使用

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)