private Dictionary<IPackage, VisitedState> GetLookup(string packageId, bool createEntry = false) { Dictionary<IPackage, VisitedState> state; if (!_visited.TryGetValue(packageId, out state)) { if (createEntry) { state = new Dictionary<IPackage, VisitedState>(PackageEqualityComparer.IdAndVersion); _visited[packageId] = state; } } return state; }