public static void SerializableTable(string[] valuesList, int skey, Dictionary <int, List <object> > _hash)
      {
          if ((int)_ID.MAX_RECORD != valuesList.Length)
          {
              throw TableException.ErrorReader("Load {0} error as CodeSize:{1} not Equal DataSize:{2}", GetInstanceFile(), _ID.MAX_RECORD, valuesList.Length);
          }
          Tab_BuildBarracks _values = new Tab_BuildBarracks();

          _values.m_Id          = Convert.ToInt32(valuesList[(int)_ID.ID_ID] as string);
          _values.m_IsUpgrade   = Convert.ToInt32(valuesList[(int)_ID.ID_ISUPGRADE] as string);
          _values.m_MaxLevel    = Convert.ToInt32(valuesList[(int)_ID.ID_MAXLEVEL] as string);
          _values.m_Name        = valuesList[(int)_ID.ID_NAME] as string;
          _values.m_UnlockLevel = Convert.ToInt32(valuesList[(int)_ID.ID_UNLOCKLEVEL] as string);

          if (_hash.ContainsKey(skey))
          {
              List <object> tList = _hash[skey];
              tList.Add(_values);
          }
          else
          {
              List <object> tList = new List <object>();
              tList.Add(_values);
              _hash.Add(skey, (List <object>)tList);
          }
      }
        public static bool InitTable_BuildBarracks()
        {
            g_BuildBarracks.Clear();
            Dictionary <int, List <object> > tmps = new Dictionary <int, List <object> >();

            if (!Tab_BuildBarracks.LoadTable(tmps))
            {
                return(false);
            }
            foreach (KeyValuePair <int, List <object> > kv in tmps)
            {
                List <Tab_BuildBarracks> values = new List <Tab_BuildBarracks>();
                foreach (object subit in kv.Value)
                {
                    values.Add((Tab_BuildBarracks)subit);
                }
                g_BuildBarracks.Add(kv.Key, values);
            }
            return(true);
        }