Esempio n. 1
0
        private static void BuildCombinedResourceList(List <TradingResource> toKepp, IGrouping <Population, TradingResource> rList)
        {
            TradingResource first = rList.First();

            first.Amount = rList.Sum(r => r.Amount);
            toKepp.Add(first);
        }
        private void MergeDublicates(ResourceType resourceType)
        {
            if (Supply[resourceType.Id].Count() == 0)
            {
                return;
            }
            var dict = Supply[resourceType.Id].tradingResources.GroupBy(tr => new { tr.Owner.ID, tr.ResourceType.Id }).Select(g => g.First()).ToList().ToDictionary(su => new { su.Owner.ID, su.ResourceType.Id });

            foreach (var su in Supply[resourceType.Id].tradingResources)
            {
                TradingResource tradingResource = dict[new { su.Owner.ID, su.ResourceType.Id }];
                if (tradingResource.Id.CompareTo(su.Id) != 0 && tradingResource.CompareTo(su) == 0)
                {
                    tradingResource.Add(su);
                }
            }
            Supply[resourceType.Id].tradingResources = dict.Values.ToList();
        }