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(); }