【问题标题】:remove the last second character from string从字符串中删除最后第二个字符
【发布时间】:2014-03-03 22:27:21
【问题描述】:

我有一个以 : 结尾的查询字符串

where id in (.....,11,)

我想删除最后一个“,”以正常工作,我试试这个:

string test = id_case[i];
id_case[i] = test.Substring(Math.Max(0,test.Length -2));
id_case[i] += test.Substring(Math.Max(test.Length-1,test.Length)) + ")";

但并没有使整个“ where ....”消失
有什么帮助吗?

【问题讨论】:

  • 逗号分隔列表是如何生成的?那里可以去掉吗?
  • 我试图阻止它添加到查询中,但这并不容易,因为代码在一个字符串中包含大约七个更新查询,每个字符串大约有 30 个案例同时更新,并且来自转发器。 ..所以没那么容易
  • 我的猜测是,当string.Join 会为您处理最后一个逗号时,该字符串是通过一个循环生成的,该循环为每个字符串添加一个逗号。

标签: c# asp.net substring


【解决方案1】:

这将删除查询字符串中的 最后一个逗号

var q = "where id in (.....,11,)";
q = q.Remove(q.LastIndexOf(','),1);

【讨论】:

  • +1 - 更简洁,尽管您希望 q.Remove(q.LastIndexOf(','),1); 只删除一个字符。
【解决方案2】:

从源头删除逗号可能会更干净,但一种方法是:

string[] parts = test.Split(',');
test = string.Join(",",parts.Take(parts.Length - 1))
     + parts[parts.Length-1);

【讨论】:

    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2017-08-19
    • 2016-01-21
    相关资源
    最近更新 更多