维护如下代码的时候发现经过Remove动作后PassItems和ProblemError变量仍然以逗号(",")结尾,及Remove函数未生效。
if ((Application.Current as App).PassItems.EndsWith(","))
(Application.Current as App).PassItems.Remove((Application.Current as App).PassItems.Length - 1);
if ((Application.Current as App).ProblemError.EndsWith(","))
(Application.Current as App).ProblemError.Remove((Application.Current as App).ProblemError.Length - 1);
查询资料发现C#中的string类的Remove函数只是生成了一个新的字符串,如果要在原始字符串中移除一部分数据,则需要将新生成的字符串重新赋值给原始变量,如:
if ((Application.Current as App).PassItems.EndsWith(","))
(Application.Current as App).PassItems = (Application.Current as App).PassItems.Remove((Application.Current as App).PassItems.Length - 1);
if ((Application.Current as App).ProblemError.EndsWith(","))
(Application.Current as App).ProblemError = (Application.Current as App).ProblemError.Remove((Application.Current as App).ProblemError.Length - 1);
按照如上改动后变量PassItems和ProblemError最后结尾处的(",")将会被移除。