private IList <LineUpViewModel> GetLineup(int playerCount) { IList <LineUp> lineups = LineUp.GetLineups(playerCount, this._snapshots, filter: new Predicate <LineUp>(lu => lu.Elapsed >= LINEUPS_MIN_TIME)); List <int[]> numbers = lineups.Select(lu => lu.ToArray()).Distinct().ToList(); List <PlayerViewModel[]> players = numbers.Select(list => list.Select( n => this.PlayersData.FirstOrDefault(p => p.Number == n)).ToArray() ) .ToList(); var vms = players.Select(ps => new LineUpViewModel(ps, this._snapshots)).ToList(); vms.Sort(); return(vms); }