为了账号安全,请及时绑定邮箱和手机立即绑定

比较.NET中的两个字节数组

比较.NET中的两个字节数组

慕婉清6462132 2019-07-23 16:23:17
比较.NET中的两个字节数组我怎么能快速做到这一点?当然,我可以这样做:static bool ByteArrayCompare(byte[] a1, byte[] a2){     if (a1.Length != a2.Length)         return false;     for (int i=0; i<a1.Length; i++)         if (a1[i]!=a2[i])             return false;     return true;}但我正在寻找BCL功能或一些经过高度优化的可靠方法来实现这一目标。java.util.Arrays.equals((sbyte[])(Array)a1, (sbyte[])(Array)a2);很好地工作,但它看起来不适用于x64。请注意我的超快速的答案在这里。
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

P / Invoke功能激活!

[DllImport("msvcrt.dll", CallingConvention=CallingConvention.Cdecl)]static extern int memcmp(byte[] b1, byte[] b2, long count);static bool ByteArrayCompare(byte[] b1, byte[] b2){
    // Validate buffers are the same length.
    // This also ensures that the count does not exceed the length of either buffer.  
    return b1.Length == b2.Length && memcmp(b1, b2, b1.Length) == 0;}


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 660 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信