2016-08-30 97 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爲了能夠刪除,需要下調投票。 –

相關問題