BattleInfoPlugin.ViewModels.Extensions.MergeEnemies C# (CSharp) Method

MergeEnemies() public static method

public static MergeEnemies ( FleetData>.this enemies ) : BattleInfoPlugin.ViewModels.Enemies.EnemyFleetViewModel[]
enemies FleetData>.this
return BattleInfoPlugin.ViewModels.Enemies.EnemyFleetViewModel[]
        public static EnemyFleetViewModel[] MergeEnemies(this IEnumerable<KeyValuePair<string, FleetData>> enemies)
        {
            return enemies.GroupBy(x => x.Key, EnemyDataProvider.Current.GetComparer())
                        .Select(x => x.First())
                        .GroupBy(x => x.Value.Ships.Select(s => s.Id).JoinString(","))
                        .Select(enemy => new EnemyFleetViewModel
                        {
                            Fleets = enemy.ToDictionary(x => x.Key, x => x.Value),
                            EnemyShips = enemy.FirstOrDefault().Value.Ships.Select(s => new EnemyShipViewModel { Ship = s }).ToArray(),
                        })
                        .OrderFleets()
                        .ToArray();
        }