Beispiel #1
0
    //从CSV表初始化Dictionary
    private static Dictionary <int, T> LoadCsvData <T>(string _fileName)
    {
        Dictionary <int, T> dic = new Dictionary <int, T>();

        /* 从CSV文件读取数据 */
        Dictionary <string, Dictionary <string, string> > result = PFileStream.ReadCsvFile(_fileName);

        /* 遍历每一行数据 */
        foreach (string id in result.Keys)
        {
            /* CSV的一行数据 */
            Dictionary <string, string> datas = result[id];

            /* 读取Csv数据对象的属性 */
            PropertyInfo[] props = typeof(T).GetProperties();
            /* 使用反射,将CSV文件的数据赋值给CSV数据对象的相应字段,要求CSV文件的字段名和CSV数据对象的字段名完全相同 */
            T obj = Activator.CreateInstance <T>();
            foreach (PropertyInfo p in props)
            {
                PReflectUtil.PiSetValue <T>(datas[p.Name], p, obj);
            }
            /* 按id-数据的形式存储 */
            dic.Add(int.Parse(id), obj);
        }

        return(dic);
    }
 public void CloseFile()
 {
     Writer.Close();
     PFileStream.Close();
 }