我的c#程序中有一长串值。现在我需要一个校验和(越小越好),看看是否所有值都包含在我想要比较的其他数组中。
它应该是一个简单的校验和,所以我也可以使用JavaScript / JQuery。有没有我可以使用的方法/代码片段?
背景:
我有一个javascript ajax mvc项目,它定期(每10秒)连接到我的c#webservice以获取长值列表并发送它拥有的最后一个值。长值是连续的,所以我只会发送自客户端最后一个值以来的新值。但有时(1:1000)有一个新的长值“较旧”而不是连续的。为了避免javascript不会获得此值(因为它只获取最新的值),我想添加一个校验和以查看它是否具有所有值。如果校验和不正确,它应该再次获取完整列表。
答案 0 :(得分:1)
最简单的方法:
unchecked
{
long checksum = 0;
for( int i = 0; i < values.Length; i++)
checksum = checksum ^ values[i];
return checksum;
}
答案 1 :(得分:0)
如果从未从列表中删除条目,则可以将列表中所有对象的计数用作“校验和”。
但是对我来说,最好不要只根据数字来检索新条目会更好。您可以将其基于服务器时间,因此服务器会记住添加对象的时间以及客户端请求自 x 以来的所有新对象。