2016-08-30 117 views
-1

我想解决这个问题,如果两个单词是另一个的字典(如果我们重新排列一个字符串,它匹配第二个字符串)。为什么我的string.Remove()不能按预期工作?

基于Remove single character from a string我建立我自己的函数:

public class AreAnagrams 
{ 
     public static bool AreStringsAnagrams(string FirstString, string SecondString) 
     { 
      if (FirstString == null || b == null) 
       return false; 

      if (FirstString.Length != SecondString.Length) 
       return false; 

      for (int i = 0; i < SecondString.Length; i++) 
      { 
       if (FirstString.IndexOf(SecondString[i]) == -1) 
        return false; 
       else 
        FirstString.Remove(FirstString.IndexOf(SecondString[i]), 1); // Here it does not modify FirstString, even if I put 2nd parameter as 1 
      } 

      if (FirstString.Length > 0) 
       return false; 

      return true; 
     } 

    public static void Main(string[] args) 
    { 
     Console.WriteLine(AreStringsAnagrams("neural", "unreal")); 
    } 
} 

我的手表我看到FirstString仍是。问题是什么?请和谢谢

+0

参见[手动](https://msdn.microsoft.com/en-us/library/d8d7z2kk(V = vs.110)。 aspx):使用返回值。 –

+0

C#字符串是不可变的。 string.Remove返回一个新的字符串与删除的字符。 –

+0

请参阅文档:https://msdn.microsoft.com/en-us/library/9ad138yc(v=vs.110).aspx –

回答

0

分配结果FirstString

FirstString = FirstString.Remove(FirstString.IndexOf(SecondString[i]), 1); 
+0

Downvoter:这个答案没有用或不正确? –

+0

@BobKaufman为了能够删除,需要下调投票。 –

相关问题