String.Remove不起作用

时间:2013-12-06 08:54:38

标签: c#

我有这样的代码并且无法理解错误在哪里,尽管事实上,这个代码非常简单。因此q是完整路径,我需要获得Gen_ParamFile

所需的路径
string q = @"C:\ProgramData\RadiolocationQ\script-Data=12^6-12^33.xml";
string _directoryName1 = @"C:\ProgramData\RadiolocationQ";
int Length = _directoryName1.Length + "ascript".Length; 

 string Gen_ParamFile = q;
 Gen_ParamFile.Remove(0, Length); // this line don't  do anything

var Gen_Parfile = Path.Combine(_directoryName1, "GeneralParam-Data" + Gen_ParamFile);

我使用了像http://msdn.microsoft.com/ru-ru/library/9ad138yc(v=vs.110).aspx

这样的功能

3 个答案:

答案 0 :(得分:10)

确实如此,它不会影响实际的字符串,因此会创建一个新的字符串。使用:

Gen_ParamFile = Gen_ParamFile.Remove(0, Length);

答案 1 :(得分:6)

因为String.Remove方法返回一个新字符串。它不会改变原来的。

  

返回一个新字符串,其中包含指定数量的字符   从指定位置开始的当前实例已被删除。

请记住,字符串是 immutable types 。你无法改变它们。即使你认为你改变它们,你实际上也会创建新的字符串对象。

你可以自己分配;

Gen_ParamFile = Gen_ParamFile.Remove(0, Length);

作为替代方案,您可以使用String.SubString方法;

Gen_ParamFile = Gen_ParamFile.SubString(Length);

答案 2 :(得分:2)

你可以使用

Gen_ParamFile = Gen_ParamFile.Remove(0,Length);

除此之外,您还可以使用

String.Substring方法根据您的要求