请问byte[]如何比较

dbModel2.TimeMark==model.TimeMark

false

Convert.ToBase64String(dbModel2.TimeMark)

"AAAAAAAANsk="

Convert.ToBase64String(model.TimeMark)

"AAAAAAAANsk="

Convert.ToBase64String(dbModel2.TimeMark)==Convert.ToBase64String(model.TimeMark)

true

TimeMark是数据库里的timestamp类型, c#里面是byte[]
请问, 两个byte[]如何比较呢?  代码中用==和equal返回false, 转换成字符串就可以了.

汪汪一只猫
浏览 620回答 2
2回答

元芳怎么了

3.5时代的SequenceEquals方法可以使用

慕尼黑5688855

数组是引用类型,你直接用==和equals比较的是引用(由于是不同的引用当然结果是false)。3.0以上可以用linq:byte[]&nbsp;a,&nbsp;b; //初始化 //LINQ:要求C#&nbsp;3.0以上 bool&nbsp;same&nbsp;=&nbsp;a.SequenceEqual(b); //更早版本可以用 bool&nbsp;same&nbsp;=&nbsp;a.Length&nbsp;==&nbsp;b.Length; for(int&nbsp;i=0;i&nbsp;<&nbsp;a.Length;&nbsp;i++) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!same)&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;same&nbsp;=&nbsp;a[i]&nbsp;==&nbsp;b[i]; }
打开App,查看更多内容
随时随地看视频慕课网APP