我想解決這個問題,如果兩個單詞是另一個的字典(如果我們重新排列一個字符串,它匹配第二個字符串)。爲什麼我的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
仍是。問題是什麼?請和謝謝
參見[手動](https://msdn.microsoft.com/en-us/library/d8d7z2kk(V = vs.110)。 aspx):使用返回值。 –
C#字符串是不可變的。 string.Remove返回一個新的字符串與刪除的字符。 –
請參閱文檔:https://msdn.microsoft.com/en-us/library/9ad138yc(v=vs.110).aspx –