从列表中删除最后一个逗号或分隔符c#

时间:2013-04-26 07:29:28

标签: c#

我有以下代码:

 DrExistingData = myCommand.ExecuteReader();
                    if (DrExistingData.HasRows)
                     {
                        string participant = "";
                        string participants = "";

                         while (DrExistingData.Read())
                         {
                             participant = DrExistingData["Name"].ToString();
                             participants = participant + " , " + participants; 

                         }

                             Participant.Text = participants;
                       }

参与者是一个文本框,显示以逗号分隔的名称列表,但问题是姓氏后面跟着逗号如下:

Simren,Preety,乔蒂, 我想删除此列表中的最后一个逗号。请帮忙

4 个答案:

答案 0 :(得分:7)

在TextBox文本上使用string.TrimEnd

Participant.Text = participants.TrimEnd(',');

答案 1 :(得分:6)

执行此操作的最有效方法是特殊情况下的第一个值 - 还注意到我在循环中使用StringBuilder而不是字符串连接(这对于分配来说非常残酷):< / p>

var builder = new StringBuilder();
if(DrExistingData.Read()) {
    builder.Append(DrExistingData["Name"]);
    while(DrExistingData.Read()) {
        builder.Append(',').Append(DrExistingData["Name"]);
    }
}
Participant.Text = builder.ToString();

答案 2 :(得分:5)

另一种方法是使用string.Join

var participants = new List<string>();
while (DrExistingData.Read())
{
    participants.Add(DrExistingData["Name"].ToString());
}
Participant.Text = string.Join(",", participants);

答案 3 :(得分:0)

在.Net 4中你可以做到

var drExistingData = myCommand.ExecuteReader();
participants.Text = string.Join(", ", 
                                drExistingData.Cast<IDataRecord>()
                                              .Select(record => record["Name"].ToString()));

对于.Net 3.5及更早版本,您必须添加.ToArray()

var drExistingData = myCommand.ExecuteReader();
participants.Text = string.Join(", ", 
                                drExistingData.Cast<IDataRecord>()
                                              .Select(record => record["Name"].ToString())
                                              .ToArray());