gethashcode

    0热度

    2回答

    我知道这不是很聪明地使用HashCode作为一个唯一的标识符, 但假设我有相同的hashCode两个变量是我可以让他们的唯一途径, 我怎么能说出不同?

    -1热度

    2回答

    我对你的意见感兴趣,这是关于在C#中编写集成/系统测试的小型库时出现的问题。该库由 2部分组成:测试创作API和测试运行时API。测试编写者使用创作API来构建测试计划原型。运行时可以采用原型并创建原型的运行时表示并执行它。 为了能够测试一个名为RuntimeTestPlanBuilder的类,我必须在整个运行时对象模型类上重写Equals方法。这导致了我应该重写GetHashCode方法的情况。

    1热度

    1回答

    我很惊讶,当我发现我的覆盖GetHashCode()Foo类的方法,当我使用foreach在IEnumerable<Foo>旅行被调用。但在其他情况下不会发生。为什么? 的真正的代码的某些部分: var allVolumeImagesInvolvedInMerge = volumeChainsToMerge .SelectMany(x => x); var allVolumeImag

    2热度

    5回答

    我的理解是,GetHashCode将为共享相同值的两个不同实例返回相同的值。 MSDN文档在这一点上有点模糊。 哈希码是一个数值,用于在进行相等测试期间识别对象 。 如果我有两个相同类型的实例和相同的值将GetHashCode()返回相同的值? 假设所有的值都是一样的,下面的测试过去还是失败? SecurityUser只有getter和setter; [TestMethod] publi

    1热度

    3回答

    我有一个标识客户的字符串。在我的网站上,我有3个不同的图片给没有设置个人资料图片的客户。我想随机将这些图像中的一个与客户相关联,但不会在会话之间改变图像。 是否与下面的代码使用GetHashCode的,像什么问题? switch (CustomerIdString.GetHashCode() % 3) { case 0: return "NoProfileImage0.pn

    4热度

    1回答

    在一些C#代码中,我使用了linqGroupBy<TSource, TKey>()方法和自定义的IEqualityComparer<T>。 GroupBy(x => x.SomeField, new FooComparer()); 我作为分组键使用字段可以是null。因此,我不得不在Equals()方法添加一些null检查: public bool Equals(Foo x, Foo y)

    0热度

    2回答

    我需要知道使用哈希码来比较许多对象的方法。所以这里是其中一个班。 public class Test: IEquatable<Test> { public Test() { } public string ID { get; set; } public string Name{ get; set; } public static i

    0热度

    2回答

    我目前正在尝试使用containskey方法来检查我所拥有的字典是否包含自定义类型的某个键。要做到这一点,我应该重写gethashcode函数,但是,containskey方法仍然无法正常工作。一定有什么东西我没有做正确的,但我还没有想通了,究竟是什么在过去的5小时里,我一直在尝试这样的: public class Parameter : IEquatable<Parameter> {

    2热度

    2回答

    我刚刚注意到,例如接口IEqualityComparer<T>提供了public int GetHashCode(T obj)。 我在另一个接口/类中更经常看到public int GetHashCode()变体。为什么它是用输入参数设计的?我明白,在'with argument'情况下,返回值不会基于调用者对象,而是方法的参数。在我看来,唯一需要GetHashCode的是null对象,是吗? 最

    45热度

    2回答

    我只是好奇,因为我猜它会影响性能。它考虑完整的字符串吗?如果是的话,那么长串会慢。如果它只考虑字符串的一部分,它会有不好的表现(例如,如果它只考虑字符串的开始,如果一个HashSet包含大部分字符串,性能会很差