Dictionary> dic = new Dictionary>();

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, Dictionary<string, Person>> dicFull = Person.GetFullDic();

System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
Dictionary<string, Person> dicPerson = dicFull["South"];
Person person = dicPerson["15"];
Console.WriteLine(person.Province + "," + person.Id + "," + person.Name + "," + person.Age);
sw.Stop();
Console.WriteLine("Cost " + sw.ElapsedMilliseconds.ToString()+" milliseconds");
Console.ReadLine();
}


}

public class Person
{
public string Province { get; set; }
public string Id { get; set; }

public string Name { get; set; }

public string Age { get; set; }

public static Dictionary<string,Person> GetDic()
{
Dictionary<string, Person> dicPerson = new Dictionary<string, Person>();
for(int i=0;i<10;i++)
{
var key = i.ToString();
Person value = new Person()
{
Province = "SH",
Id = i.ToString(),
Name = "Fred" + i,
Age = "Age" + i
};
dicPerson.Add(key, value);
}

for(int i=10;i<20;i++)
{
var key = i.ToString();
Person value = new Person()
{
Province = "JS",
Id = i.ToString(),
Name = "WYQ" + i,
Age = "Age" + i
};

dicPerson.Add(key, value);
}

return dicPerson;
}

public static Dictionary<string,Dictionary<string,Person>> GetFullDic()
{
Dictionary<string, Dictionary<string, Person>> dic = new Dictionary<string, Dictionary<string, Person>>();
Dictionary<string, Person> dicPerson = Person.GetDic();
var key1 = "North";
dic.Add(key1, dicPerson);
var key2 = "South";
dic.Add(key2, dicPerson);

return dic;
}
}
}