예제 #1
0
        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);
            }
        }
예제 #2
0
 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}");
 }