// compare whether two ItemWrapper classes are same by comparing // their name and their array of unique dependencies public bool Equals(ItemWrapper item) { if (!item.GetName().Equals(this.name)) return false; string[] otherDependencies = item.GetDependencies(); if (otherDependencies == null && dependencies == null) return true; else if (dependencies == null || otherDependencies == null) return false; otherDependencies = otherDependencies.Distinct().ToArray(); dependencies = dependencies.Distinct().ToArray(); Array.Sort(otherDependencies); Array.Sort(dependencies); for (int i = 0; i < dependencies.Length; i++) { if (!dependencies[i].Equals(otherDependencies[i])) return false; } return true; }