using System;
using System.Collections.Generic;
public class Test
{
public Test() {}
public Test(int id)
{
Id = id;
}
public long Id { get; set; }
public override bool Equals(object other)
{
var test = other as Test;
if (test == null) return false;
return test.Id == Id;
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
public override string ToString()
{
return $"{{ Id: {Id} }}";
}
public static void Main()
{
var map = new Dictionary<string, Test>();
var test = new Test(5);
map["hey"] = new Test(0);
map["hey"] = test;
test.Id = 6;
map["hey"] = test;
map["holla"] = new Test(2);
foreach(var pair in map) {
Console.WriteLine("key: {0}, value: {1}", pair.Key, pair.Value);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBUZXN0KCkge30KCXB1YmxpYyBUZXN0KGludCBpZCkKCXsKCQlJZCA9IGlkOwoJfQoJcHVibGljIGxvbmcgSWQgeyBnZXQ7IHNldDsgfQoJcHVibGljIG92ZXJyaWRlIGJvb2wgRXF1YWxzKG9iamVjdCBvdGhlcikKCXsKCQl2YXIgdGVzdCA9IG90aGVyIGFzIFRlc3Q7CgkJaWYgKHRlc3QgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwoJCXJldHVybiB0ZXN0LklkID09IElkOwoJfQoJCglwdWJsaWMgb3ZlcnJpZGUgaW50IEdldEhhc2hDb2RlKCkKCXsKCQlyZXR1cm4gSWQuR2V0SGFzaENvZGUoKTsKCX0KCQoJcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpCgl7CgkJcmV0dXJuICQie3sgSWQ6IHtJZH0gfX0iOwoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIG1hcCA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZywgVGVzdD4oKTsKCQl2YXIgdGVzdCA9IG5ldyBUZXN0KDUpOwoJCW1hcFsiaGV5Il0gPSBuZXcgVGVzdCgwKTsKCQltYXBbImhleSJdID0gdGVzdDsKCQl0ZXN0LklkID0gNjsKCQltYXBbImhleSJdID0gdGVzdDsKCQltYXBbImhvbGxhIl0gPSBuZXcgVGVzdCgyKTsKCQlmb3JlYWNoKHZhciBwYWlyIGluIG1hcCkgewoJCQlDb25zb2xlLldyaXRlTGluZSgia2V5OiB7MH0sIHZhbHVlOiB7MX0iLCBwYWlyLktleSwgcGFpci5WYWx1ZSk7CgkJfQoJfQp9