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)
但是这句话似乎没有删除最后一个逗号而是保持不变,我在这里做错了什么?
而不是添加,然后删除逗号,它首先避免它更清洁.这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())并加入它们,并且特别适用于在最后一项之后关闭分隔符的这种非常流行的情况.
注意:此技术会对集合进行两次处理,一次进行字符串化,一次进行连接.如果这是一个巨大的集合,它可能是一个问题.通常,它不会.
设法使用 TrimEnd(','); 删除它
var t = model.Activities.TrimEnd(',');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3343 次 |
| 最近记录: |