构建长值数组的校验和

时间:2010-08-02 17:41:04

标签: c# .net javascript

我的c#程序中有一长串值。现在我需要一个校验和(越小越好),看看是否所有值都包含在我想要比较的其他数组中。

它应该是一个简单的校验和,所以我也可以使用JavaScript / JQuery。有没有我可以使用的方法/代码片段?

背景:

我有一个javascript ajax mvc项目,它定期(每10秒)连接到我的c#webservice以获取长值列表并发送它拥有的最后一个值。长值是连续的,所以我只会发送自客户端最后一个值以来的新值。但有时(1:1000)有一个新的长值“较旧”而不是连续的。为了避免javascript不会获得此值(因为它只获取最新的值),我想添加一个校验和以查看它是否具有所有值。如果校验和不正确,它应该再次获取完整列表。

2 个答案:

答案 0 :(得分:1)

最简单的方法:

 unchecked
 {
      long checksum = 0;
      for( int i = 0; i < values.Length; i++)
          checksum = checksum ^ values[i];
      return checksum;
 }

答案 1 :(得分:0)

如果从未从列表中删除条目,则可以将列表中所有对象的计数用作“校验和”。

但是对我来说,最好不要只根据数字来检索新条目会更好。您可以将其基于服务器时间,因此服务器会记住添加对象的时间以及客户端请求自 x 以来的所有新对象。