我想解决这个问题,如果两个单词是另一个的字典(如果我们重新排列一个字符串,它匹配第二个字符串)。为什么我的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 –