I wish to have the dictionary which uses an array of integers as keys, and if the integer array has the same value (even different object instance), they will be treated as
Maybe you should consider using a Tuple
var myDictionary = new Dictionary, string>(); myDictionary.Add(new Tuple(3, 3), "haha1"); myDictionary.Add(new Tuple(5, 5), "haha2");
According to MSDN , Tuple objects Equals method will use the values of the two Tuple objects
Equals