public TeeniGramGroup(int count, SuperstarOutput output = null, bool lastNames = false, double propability = 0.8d) { this.output = output; Random random = new Random(); ListRandom <string> nameRandom = new ListRandom <string>(names, random); users = Enumerable.Repeat(new User(), count).Select(x => new User { name = nameRandom.Next(), }).ToList(); if (!lastNames) { users.ForEach(x => x.name = x.name.Split(' ')[0]); } users.ForEach(user => { ListRandom <User> listRandom = new ListRandom <User>(users .Where(x => x.name != user.name) .ToList(), random); user.following = listRandom.Next(random.Next(0, listRandom.Count)).ToList(); }); if (random.NextDouble() < propability) { int pos = random.Next(0, users.Count); users.ForEach(delegate(User user) { if (!user.following.Contains(users[pos])) { user.following.Add(users[pos]); } }); users[pos].following.Clear(); } }