using System;
							
								using System.Collections.Generic;
							
								using System.IO;
							
								using System.Linq;
							
								using System.Text;
							
								using System.Threading.Tasks;
							
								using System.Xml;
							
								 
							
								namespace ConsoleApp1
							
								{
							
								  class Program
							
								  {
							
								    public const String xmlPath = "info.xml";
							
								 
							
								    static void Main(string[] args)
							
								    {
							
								 
							
								      IDictionary<String, List<String>> infos = new Dictionary<String, List<String>>();
							
								 
							
								      infos.Add("Evan", new List<string>() { "123", "456" });
							
								 
							
								      SaveXML(infos);
							
								 
							
								      ReadXML();
							
								      Console.ReadKey();
							
								    }
							
								 
							
								    public static void SaveXML(IDictionary<String, List<String>> infos)
							
								    {
							
								      if (infos == null || infos.Count == 0)
							
								      {
							
								        return;
							
								      }
							
								 
							
								      XmlDocument xmlDoc = new XmlDocument();
							
								 
							
								      XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
							
								 
							
								      xmlDoc.AppendChild(dec);
							
								 
							
								      XmlElement _infos = xmlDoc.CreateElement("infos");
							
								 
							
								      foreach (KeyValuePair<String, List<String>> item in infos)
							
								      {
							
								        XmlElement info = xmlDoc.CreateElement("info");
							
								 
							
								        XmlElement name = xmlDoc.CreateElement("file1");
							
								        name.InnerText = item.Key;
							
								 
							
								        info.AppendChild(name);
							
								 
							
								        XmlNode filelist = xmlDoc.CreateElement("filelist");
							
								 
							
								        info.AppendChild(filelist);
							
								 
							
								        foreach (String number in item.Value)
							
								        {
							
								          XmlElement filed = xmlDoc.CreateElement("filed");
							
								          filed.InnerText = number;
							
								 
							
								          filelist.AppendChild(filed);
							
								        }
							
								 
							
								        _infos.AppendChild(info);
							
								      }
							
								 
							
								      xmlDoc.AppendChild(_infos);
							
								 
							
								      xmlDoc.Save(xmlPath);
							
								    }
							
								 
							
								    public static IDictionary<String, List<String>> ReadXML()
							
								    {
							
								      IDictionary<String, List<String>> infos = new Dictionary<String, List<String>>();
							
								 
							
								      if (File.Exists(xmlPath))
							
								      {
							
								        XmlDocument xmlDoc = new XmlDocument();
							
								 
							
								        xmlDoc.Load(xmlPath);
							
								 
							
								        XmlNode xn = xmlDoc.SelectSingleNode("infos");
							
								 
							
								        XmlNodeList xnl = xn.ChildNodes;
							
								 
							
								        foreach (XmlNode xnf in xnl)
							
								        {
							
								          XmlElement xe = (XmlElement)xnf;
							
								 
							
								          XmlNode nameNode = xe.SelectSingleNode("file1");
							
								 
							
								          string name = nameNode.InnerText;
							
								          Console.WriteLine(name);
							
								          XmlNode filelist = xe.SelectSingleNode("filelist");
							
								 
							
								          List<String> list = new List<string>();
							
								 
							
								          foreach (XmlNode item in filelist.ChildNodes)
							
								          {
							
								            list.Add(item.InnerText);
							
								          }
							
								 
							
								          infos.Add(name, list);
							
								        }
							
								      }
							
								 
							
								      return infos;
							
								    }
							
								  }
							
								}