【发布时间】:2011-08-24 05:38:27
【问题描述】:
我一直都需要这个,并且一直对 Trim()、TrimStart() 和 TrimEnd() 函数不将字符串作为输入感到沮丧。你在一个字符串上调用 EndsWith() ,并找出它是否以另一个字符串结尾,但是如果你想从末尾删除它,你必须做子字符串黑客来做到这一点(或调用 Remove() 并祈祷它是唯一的实例...)
为什么.NET 中缺少这个基本功能?其次,任何关于实现这一点的简单方法的建议(最好不是正则表达式路线......)
【问题讨论】:
-
您想要返回
"AB"的"ABCDCDCD".TrimEnd("CD")还是返回"ABCDCD"的"ABCDCDCD".RemoveIfEndsWith("CD")? -
出于我的目的,我对第二个感兴趣 - 删除单个实例。所以我猜appprop名称是RemoveEnd()?可以删除字符串的所有实例,甚至可以修剪字符串集合的替代选项也会非常好......但与当前需要不同。我实际上可能会为此问另一个问题。
-
我猜它不存在的原因是因为如果添加了所有可能有用的方法,那么 c# 字符串将变得像 std:string - 充满了所有可以想象的额外内容,包括 str.DoesSomeofStringMAtchThisLintFromBehindTheSofa() 等。事实上,c# 有一种非常好的方法可以自己添加方法,这意味着这不是一个真正的问题。如果您反对,因为它内置而不是基于自制的子字符串更有效,那么我已经在考虑在我的代码中使用子字符串的频率时遇到了很大的麻烦。
-
我知道必须在某处画出界线,但天哪,这是基本的东西。这和 PickBellyButtonLint()。
-
我同意,这是智障。甚至 VB6 也可以做到这一点,但在当前版本中仍然没有添加。巨大的疏忽?技术原因? .. 还是只是为了惹恼我们?