/// <summary>
/// 转成Base64字符串进行比较
/// </summary>
/// <param name="b1"></param>
/// <param name="b2"></param>
/// <returns></returns>
private bool BytesCompare_Base64(byte[] b1, byte[] b2)
{
if (b1 == null || b2 == null) return false;
if(b1.Length !=b2.Length ) return false;
return string.Compare(Convert.ToBase64String(b1), Convert.ToBase64String(b2), false) == 0 ? true : false;
}
/// <summary>
/// 逐个字节进行比较
/// </summary>
/// <param name="b1"></param>
/// <param name="b2"></param>
/// <returns></returns>
private bool BytesCompare_Step(byte[] b1, byte[] b2)
{
if (b1 == null || b2 == null) return false;
if (b1.Length != b2.Length) return false;
for (int i = 0; i < b1.Length; ++i)
{
if (b1[i] != b2[i]) return false;
}
return true;
/// 转成Base64字符串进行比较
/// </summary>
/// <param name="b1"></param>
/// <param name="b2"></param>
/// <returns></returns>
private bool BytesCompare_Base64(byte[] b1, byte[] b2)
{
if (b1 == null || b2 == null) return false;
if(b1.Length !=b2.Length ) return false;
return string.Compare(Convert.ToBase64String(b1), Convert.ToBase64String(b2), false) == 0 ? true : false;
}
/// <summary>
/// 逐个字节进行比较
/// </summary>
/// <param name="b1"></param>
/// <param name="b2"></param>
/// <returns></returns>
private bool BytesCompare_Step(byte[] b1, byte[] b2)
{
if (b1 == null || b2 == null) return false;
if (b1.Length != b2.Length) return false;
for (int i = 0; i < b1.Length; ++i)
{
if (b1[i] != b2[i]) return false;
}
return true;
}
第二种在最坏的情况下,字节比较次数为N(数组长度)
经个人测试结果如下:
总体来说第一种方法性能较好!!!