我有以下代码:
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,乔蒂, 我想删除此列表中的最后一个逗号。请帮忙
答案 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());