コード例 #1
0
        public static PropertyMapping <T>[] Read(StreamReader sr)
        {
            //read head line that tells mapping count, variable names
            string line  = sr.ReadLine();
            var    strs  = TypeConverterEx.Split <string>(line, 1);
            int    layer = int.Parse(strs[0]);

            PropertyMapping <T> [] maps = new PropertyMapping <T> [layer];

            for (int l = 0; l < layer; l++)
            {
                line = sr.ReadLine();
                strs = TypeConverterEx.Split <string>(line, 1);
                int num = int.Parse(strs[0]);
                line = sr.ReadLine();
                var varnam = TypeConverterEx.SkipSplit <string>(line, 1);
                var ids    = new string[num];
                var values = new T[num, varnam.Length];
                for (int i = 0; i < num; i++)
                {
                    line   = sr.ReadLine();
                    strs   = TypeConverterEx.Split <string>(line);
                    ids[i] = strs[0];
                    var row = TypeConverterEx.SkipSplit <T>(line, 1);
                    MatrixExtension <T> .AssignRow(values, i, row);
                }
                PropertyMapping <T> map = new PropertyMapping <T>(ids, varnam, values);
                maps[l] = map;
            }
            return(maps);
        }