构建long值数组的校验和
我在c#程序中有一个长数组的数组。现在我需要一个校验和(越小越好)来查看是否所有值都包含在我想与之比较的其他数组中。构建long值数组的校验和
它应该是一个简单的校验和,所以我可以在JavaScript/JQuery中使用它。有没有我可以使用的方法/代码片段?
背景:
我有定期连接(每10秒)我的C#web服务长期做下去值的列表,并将它的最后一个值一个javascript AJAX MVC项目。长的值是连续的,所以我只会发送自客户端上一次值以来的新值。但有时(1:1000)有一个新的长值,“较旧”且不连续。为了避免javascript不会得到这个值(因为它只获取最新值),我想添加一个校验和以查看它是否具有每个值。如果校验和不正确,它应该再次获取完整列表。
最简单的方法:
unchecked
{
long checksum = 0;
for(int i = 0; i < values.Length; i++)
checksum = checksum^values[i];
return checksum;
}
*如果*可以知道没有值将为负值,请将您的校验和设为安全值。 – 2010-08-02 18:05:46
这些值为正值。我也可以在JavaScript中使用它吗?有没有像未经检查的东西?什么时候发生溢出(在c#中没有关系,因为它没有被选中,但在JavaScript中)? – Chris 2010-08-02 18:18:11
如果条目不会从列表中删除,你可以使用的所有对象的数量在列表中的“校验”。
但是,对我而言,不要仅仅根据数字检索新条目会更好。您可以基于服务器时间,因此服务器会记住何时添加了对象,并且客户端请求所有新对象,因为x。
你可以添加更多关于如何使用这个校验和的细节吗? – Justin 2010-08-02 17:45:10
我添加了我的背景。 – Chris 2010-08-02 17:52:50