private static IEnumerable <CountryInfo> AggregateWithoutZeroDays(IEnumerable <CountryInfo> arr) { CountryInfo prev = null; foreach (var item in arr.Where(_ => _.Days > 0)) { if (prev == null) { prev = item; continue; } if (item.Country == prev.Country) { prev = new CountryInfo { Country = item.Country, CountryIsoCode = item.CountryIsoCode, FirstDateUtc = prev.FirstDateUtc, LastDateUtc = item.LastDateUtc, MaxAccuracy = Math.Max(Math.Max(0, item.MaxAccuracy), Math.Max(0, prev.MaxAccuracy)), MinAccuracy = Math.Min(Math.Max(0, item.MinAccuracy), Math.Max(0, prev.MinAccuracy)), }; } else { yield return(prev); prev = item; } } if (prev != null) { yield return(prev); } }
private static string FormatCsv(CountryInfo countryInfo, int num) { return($"{num},{countryInfo.CountryIsoCode ?? ""},{countryInfo.Country ?? ""},{Math.Ceiling(countryInfo.Days)},{countryInfo.FirstDateUtc:O},{countryInfo.LastDateUtc:O},{countryInfo.MinAccuracy},{countryInfo.MaxAccuracy}"); }