使用PadRight方法填充字符串

Bru*_*uce 18 .net c# string

我想在C#中为字符串末尾添加空格:

Trip_Name1.PadRight(20);
Run Code Online (Sandbox Code Playgroud)

还尝试过:

Trip_Name1.PadRight(20,' ');
Run Code Online (Sandbox Code Playgroud)

这似乎都不起作用.但是我可以用任何其他角色填充字符串.为什么?

我应该更具体,这里是完整的代码:

lnk_showmatch_1.Text = u_trip.Trip_Name1.PadRight(20,' ');
Run Code Online (Sandbox Code Playgroud)

vcs*_*nes 27

字符串是不可变的,它们不能被更改.PadRight返回填充字符串的新实例,而不是更改它所调用的实例.你想要的是这个:

Trip_Name1 = Trip_Name1.PadRight(20,' ');
Run Code Online (Sandbox Code Playgroud)

关于为什么字符串是不可变的,这个 StackOverflow问题有很好的讨论.

编辑:

这似乎都不起作用.但是我可以用任何其他角色填充字符串.

你真的像上面的例子一样重新分配它吗?如果是这种情况 - 那么没有更多细节我只能想到以下内容:

  1. 如果要将其存储在数据库中并进行检索,则某些具有正确设置的数据库可能会"修剪".
  2. 你在其他地方有逻辑修剪白色空间.这在处理用户输入时很常见.

编辑2:

我应该更具体一点

我将根据您处理HTML/ASP.NET的命名约定进行猜测.在大多数情况下,在HTML中 - 空白区域已折叠.例如:

<div><a>Hello           World</a></div>
<div><a>Hello World</a></div>
Run Code Online (Sandbox Code Playgroud)

两个a标记将呈现相同,因为白色空间正在折叠.如果您确实使用HTML - 这可能是您的理由以及为什么填充适用于所有其他字符.如果你做了渲染标记的视图源 - 它是否包含额外的空格?

如果你想保留空格,尝试在你调用的元素上应用CSS样式white-space并将其设置为pre.例如:

<a style="white-space:pre">hello     world      </a>
Run Code Online (Sandbox Code Playgroud)

这将导致保留白色空间.请记住,使用这样的空白区域有缺点.浏览器不会以相同的方式呈现它们等等.我不会将它用于布局目的.考虑使用CSS等min-width.