小编Jos*_*ong的帖子

找出2个集合与40K对象的差异

我有2个集合都包含相同类型的对象,并且两个集合每个都有大约40K对象.

每个集合包含的对象的代码基本上就像一个字典,除了我重写了equals和hash函数:

public class MyClass: IEquatable<MyClass>
{
    public int ID { get; set; }
    public string Name { get; set; }

    public override bool Equals(object obj)
    {
        return obj is MyClass && this.Equals((MyClass)obj);
    }

    public bool Equals(MyClass ot)
    {
        if (ReferenceEquals(this, ot))
        {
            return true;
        }

        return 
         ot.ID.Equals(this.ID) &&
         string.Equals(ot.Name, this.Name, StringComparison.OrdinalIgnoreCase); 
    }

    public override int GetHashCode()
    {
         unchecked
         {
             int result = this.ID.GetHashCode();
             result = (result * 397) ^ this.Name.GetSafeHashCode();
             return result;
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

我用来比较集合并获得差异的代码只是使用PLinq的简单Linq查询.

ParallelQuery p1Coll = …
Run Code Online (Sandbox Code Playgroud)

c# linq plinq

3
推荐指数
1
解决办法
225
查看次数

如何计算3 GB文件的校验和,但首先删除最后28个字节

环境:3 GB数据文件,末尾附加28字节SHA-1校验和.

是否可以使用FileStream或其他类型的流来计算SHA-1校验和散列,方法是从位置0读取流到位置[x - 28(附加校验和的长度)],而无需从物理上删除附加的校验和文件的结尾第一个?

目前我们使用FileStream打开文件,然后使用BinaryReader读取它以查找和读取文件的最后28个字节.

然后使用FileStream再次打开文件,并将流的长度设置为长度--28个字节,这将从文件中删除校验和.

最后,我们计算数据文件的校验和,删除最后28个字节,然后将其与我们从文件末尾删除的校验和进行比较,以确保校验和匹配.

基本上我想知道是否可以计算文件数据部分的校验和,而不必先删除附加的校验和.

c# hash

0
推荐指数
1
解决办法
677
查看次数

标签 统计

c# ×2

hash ×1

linq ×1

plinq ×1