C# 构建长值数组的校验和

C# 构建长值数组的校验和,c#,.net,javascript,C#,.net,Javascript,我的c#程序中有一个长值数组。现在我需要一个校验和(越小越好),以查看是否所有值都包含在我想要比较的其他数组中 它应该是一个简单的校验和,所以我也可以在JavaScript/JQuery中使用它。是否有我可以使用的方法/代码片段 背景: 我有一个javascript-ajax-mvc项目,它定期(每10秒)连接到我的c#webservice,以获得一个长值列表,并发送最后一个值。长值是连续的,因此我将只发送自客户端具有的最后一个值以来的新值。但有时(1:1000)会出现一个新的“较旧”且不连续的

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

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

背景:

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

最简单的方法:

 unchecked
 {
      long checksum = 0;
      for( int i = 0; i < values.Length; i++)
          checksum = checksum ^ values[i];
      return checksum;
 }
未选中
{
长校验和=0;
for(int i=0;i
最简单的方法:

 unchecked
 {
      long checksum = 0;
      for( int i = 0; i < values.Length; i++)
          checksum = checksum ^ values[i];
      return checksum;
 }
未选中
{
长校验和=0;
for(int i=0;i
如果从未从列表中删除条目,则可以使用列表中所有对象的计数作为“校验和”


但在我看来,最好不要仅仅根据数字来检索新条目。您可以基于服务器时间,这样服务器会记住对象是何时添加的,客户端会请求x之后的所有新对象。

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


但在我看来,最好不要仅仅根据数字来检索新条目。您可以基于服务器时间,以便服务器记住何时添加了一个对象,客户端请求x之后的所有新对象。

您可以添加有关如何使用此校验和的更多详细信息吗?您可以添加有关如何使用此校验和的更多详细信息吗?如果可以知道,则没有负值,为安全起见,请将校验和设为ulong。值为正值。我也可以使用JavaScript吗?有没有类似的情况?当溢出发生时会发生什么情况(在c#中,它是未选中的,而在JavaScript中,这并不重要)?如果可以知道它没有负值,那么为了安全起见,将您的校验和设为ulong。值为正值。我也可以使用JavaScript吗?有没有类似的情况?当溢出发生时会发生什么情况(在c#中这并不重要,因为它是未检查的,但是在JavaScript中)?