如何快速比較 byte 陣列

如何快速比較 byte 陣列

根據 如何:使用 C# .NET 計算和比較雜湊值 說法,比較兩個 byte 陣列最簡單的方式,就是以迴圈方式對陣列中每一個別元素,逐一與另一個陣列中的值比較。如果有任何元素不相同,或者兩個陣列的大小不同,兩個陣列就不相等。

例:

   1:  bool bEqual = false;
   2:  if (tmpNewHash.Length == tmpHash.Length)
   3:  {
   4:      int i = 0;
   5:      while ((i < tmpNewHash.Length) && (tmpNewHash[i] == tmpHash[i]))
   6:      {
   7:          i += 1;
   8:      }
   9:   
  10:      if (i == tmpNewHash.Length)
  11:      {
  12:          bEqual = true;
  13:      }
  14:  }

但是除了上述作法外,還可以利用 BitConverter 讓比較更加地簡潔:

   1:  byte[] b1 = { 0x01, 0x02, 0x03 };
   2:  byte[] b2 = { 0x01, 0x02, 0x03 };
   3:   
   4:  if (BitConverter.ToString(b1) == BitConverter.ToString(b2))
   5:  {
   6:      MessageBox.Show("The same");
   7:  }
   8:  else
   9:  {
  10:      MessageBox.Show("Different");
  11:  }