我想比较两个字符数组,以查看它们的内容是否是回文。数组比较永不等于真
static bool isPalindrome(string s)
{
char[] normal = s.ToCharArray();
char[] reversed = s.ToCharArray();
Array.Reverse(reversed);
return (normal == reversed) ? true : false;
}
问题是,此方法永远不会返回true。即使阵列包含回文。
这里有什么问题?
编辑:
答案:数组是一种referense类型。我比较了参考,而不是内容。
Enumerable.SequenceEqual(normal,reversed);
数组的比较是引用类型,所以通过引用(即他们在同一个对象),'normal'和'逆转相比, '是不同的物体,所以不匹配。 –
数组是c#中的引用类型。您无法将内容与==符号进行比较。 – Dave3of5
http://stackoverflow.com/questions/4423318/how-to-compare-arrays-in-c,http://stackoverflow.com/questions/14960191/in-c-why-equals-method-on-arrays -only-compare-their-references-not-their-ac,等等。在网上搜索“C#比较数组”或查看重复内容。 – CodeCaster