从string语句中删除最后一个逗号

Cod*_*het 1 c# substring asp.net-mvc-5

我有以下声明

model.Activities = model.SelectedActivities.Aggregate(model.Activities, (current, activityId) => current + string.Format("({0}, {1}, {2}, null),", activityId, userId, DateTime.Now));
Run Code Online (Sandbox Code Playgroud)

产生以下内容:

(1, 1, 05/04/2015 05:09:39, null),(2, 1, 05/04/2015 05:09:39, null),(3, 1, 05/04/2015 05:09:39, null),(5, 1, 05/04/2015 05:09:39, null),(8, 1, 05/04/2015 05:09:39, null),
Run Code Online (Sandbox Code Playgroud)

你可以在最后看到有一个逗号,我试图通过执行以下操作来删除它:

var t = model.Activities.Substring(1, model.Activities.Length - 1);
Run Code Online (Sandbox Code Playgroud)

但是这句话似乎没有删除最后一个逗号而是保持不变,我在这里做错了什么?

Avn*_*tan 6

而不是添加,然后删除逗号,它首先避免它更清洁.这string.Join是为了什么.

首先创建要加入的字符串集合:

IEnumerable<string> activities = model.SelectedActivities.Select(activityId => 
   string.Format("({0}, {1}, {2}, null),", activityId, userId, DateTime.Now));
Run Code Online (Sandbox Code Playgroud)

然后加入他们:

var modelActivities = string.Join(",", activities);
Run Code Online (Sandbox Code Playgroud)

字符串连接可以接收任何IEnumerable(如果它们不是字符串,则调用项目上的ToString())并加入它们,并且特别适用于在最后一项之后关闭分隔符的这种非常流行的情况.

注意:此技术会对集合进行两次处理,一次进行字符串化,一次进行连接.如果这是一个巨大的集合,它可能是一个问题.通常,它不会.


Cod*_*het 5

设法使用 TrimEnd(','); 删除它

var t = model.Activities.TrimEnd(',');
Run Code Online (Sandbox Code Playgroud)