給定兩個字串陣列 string[] str1 和 string[] str2,需判斷其長度、順序及每個元素值是否完全相等。例如 {"1","2","3"} 與 {"1","2","3"} 視為相等。
public bool ArraysEqual(string[] str1, string[] str2) {
if (str1 == null || str2 == null) return str1 == str2;
if (str1.Length != str2.Length) return false;
for (int i = 0; i < str1.Length; i++) {
if (str1[i] != str2[i]) return false;
}
return true;
}
SequenceEqual(推薦,簡潔高效)using System.Linq;
bool areEqual = str1.SequenceEqual(str2);
StructuralComparisons(適用於多維陣列或自訂比較)using System.Collections;
using System.Collections.Generic;
bool areEqual = StructuralComparisons.StructuralEqualityComparer.Equals(str1, str2);
string[] arr1 = { "1", "2", "3" };
string[] arr2 = { "1", "2", "3" };
string[] arr3 = { "1", "3", "2" };
Console.WriteLine(arr1.SequenceEqual(arr2)); // True
Console.WriteLine(arr1.SequenceEqual(arr3)); // False
建議優先使用 SequenceEqual,程式碼可讀性高且效能優異。