我想比較兩個字符數組,以查看它們的內容是否是迴文。數組比較永不等於真
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