-
Notifications
You must be signed in to change notification settings - Fork 0
/
CountryData.cs
41 lines (33 loc) · 984 Bytes
/
CountryData.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System.Linq;
namespace GeoFriend
{
public class CountryData
{
protected Country[] Countries { get; set; }
public CountryData(string fn)
{
var data = System.IO.File.ReadAllLines(fn);
Countries = (from z in data.Skip(1)
select new Country(z)).ToArray();
}
public string GetCapital(string country)
{
return Countries.FirstOrDefault(
c=> c.Name.ToLower()== country.ToLower())?.Capital;
}
}
public class Country
{
public string Name { get; set; }
public string Capital { get; set; }
public int Population { get; set; }
public Country(string s)
{
var t = s.Split(',');
Capital = t[0].Trim('"');
Name = t[4].Trim('"');
float res;
Population = float.TryParse(t[9].Trim('"'), out res) ? (int)res : 0;
}
}
}