72 lines
2.2 KiB
C#
72 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace MarketData.MarketDataModel
|
|
{
|
|
public class EconomicIndicators : List<EconomicIndicator>
|
|
{
|
|
public EconomicIndicators()
|
|
{
|
|
}
|
|
|
|
public EconomicIndicators(List<EconomicIndicator> economicIndicators)
|
|
{
|
|
foreach(EconomicIndicator economicIndicator in economicIndicators)
|
|
{
|
|
Add(economicIndicator);
|
|
}
|
|
}
|
|
|
|
public List<Int32> GetYears()
|
|
{
|
|
if(0==Count)return null;
|
|
List<Int32> years = (from EconomicIndicator economicIndicator in this select economicIndicator.Year).Distinct().ToList();
|
|
years.Sort();
|
|
return years;
|
|
}
|
|
|
|
public Dictionary<String,EconomicIndicators> GetDictionary()
|
|
{
|
|
Dictionary<String,EconomicIndicators> dictionary=new Dictionary<String,EconomicIndicators>();
|
|
if(0==Count)return null;
|
|
for (int index = 0; index < Count; index++)
|
|
{
|
|
EconomicIndicator economicIndicator=this[index];
|
|
if(!dictionary.ContainsKey(economicIndicator.CountryCode))
|
|
{
|
|
List<EconomicIndicator> list=new List<EconomicIndicator>();
|
|
dictionary.Add(economicIndicator.CountryCode,new EconomicIndicators());
|
|
}
|
|
EconomicIndicators economicIndicators=dictionary[economicIndicator.CountryCode];
|
|
economicIndicators.Add(economicIndicator);
|
|
}
|
|
List<String> keys=new List<String>(dictionary.Keys);
|
|
foreach(String key in keys)
|
|
{
|
|
dictionary[key].Sort(new EconomicIndicatorByYear());
|
|
}
|
|
return dictionary;
|
|
}
|
|
}
|
|
|
|
public class EconomicIndicatorByYear : IComparer<EconomicIndicator>
|
|
{
|
|
public int Compare(EconomicIndicator p1,EconomicIndicator p2)
|
|
{
|
|
return p1.Year.CompareTo(p2.Year);
|
|
}
|
|
}
|
|
|
|
public class EconomicIndicator
|
|
{
|
|
public String Source{get;set;}
|
|
public String CountryName{get;set;}
|
|
public String CountryCode{get;set;}
|
|
public String IndicatorName{get;set;}
|
|
public String IndicatorCode{get;set;}
|
|
public double IndicatorValue{get;set;}
|
|
public int Year{get;set;}
|
|
}
|
|
}
|