static void UniqueLastNamesOfActorsWithSameFirstNameAs(MoviesDB moviesDB, bool printSep, int width) { long msecs1 = Environment.TickCount; int maxActorId = 0; foreach (Actor a in moviesDB.actors.Values) { if (a.id > maxActorId) { maxActorId = a.id; } } int numOfIds = moviesDB.actors.Count / 20; int[] randomIds = RandomInts(maxActorId, numOfIds, 35102); int maxNo = 0; int misses = 0; foreach (int id in randomIds) { Actor actor; if (moviesDB.actors.TryGetValue(id, out actor)) { HashSet <String> actors = moviesDB.UniqueLastNamesOfActorsWithSameFirstNameAs(actor); if (actors.Count > maxNo) { maxNo = actors.Count; } } else { misses++; } } long msecs2 = Environment.TickCount; PrintTime(msecs2 - msecs1, printSep, width); }