using System.Collections.Generic; namespace GFGGame { public class {CfgArrayName} : SingletonBase<{CfgArrayName}> { private Dictionary<{keyType}, {CfgName}> _cfgDic = new Dictionary<{keyType}, {CfgName}>(); private {CfgName}[] _allDatas; public {CfgName} GetCfg({keyType} {keyName}) { if (!_cfgDic.TryGetValue({keyName}, out {CfgName} cfg)) { SQLiteHelper.Instance.OpenConnection(); try { var reader = SQLiteHelper.Instance.ReadTableByOneCol("{CfgArrayName}", "{keyName}", {keyName}.ToString()); if (reader.Read()) { cfg = new {CfgName}(); cfg.setData(reader); _cfgDic.Add({keyName}, cfg); } } catch(System.Exception e) { ET.Log.Error(e); } finally { SQLiteHelper.Instance.CloseConnection(); } } return cfg; } public {CfgName}[] dataArray { get { if(_allDatas == null) { List<{CfgName}> list = new List<{CfgName}>(); SQLiteHelper.Instance.OpenConnection(); try { var reader = SQLiteHelper.Instance.ReadFullTable("{CfgArrayName}"); while (reader.Read()) { var cfg = new {CfgName}(); cfg.setData(reader); list.Add(cfg); _cfgDic[cfg.{keyName}] = cfg; } } catch(System.Exception e) { ET.Log.Error(e); } finally { SQLiteHelper.Instance.CloseConnection(); } _allDatas = list.ToArray(); } return _allDatas; } } } }