using System.Collections.Generic; using ET; namespace Cal.DataTable { public partial class StarSoulLevelConfigCategory { /// /// kv[quality, kv[level, id]] /// /// private Dictionary> idDictionary = new Dictionary>(); public StarSoulLevelConfig GetByQualityAndLevel(Quality quality, byte level) { if (this.idDictionary.TryGetValue((byte) quality, out var dic)) { if (dic.TryGetValue(level, out long id)) { return Get(id); } } return null; } public override void EndInit() { base.EndInit(); foreach (var kv in this.dict) { if (!this.idDictionary.TryGetValue(kv.Value.Quality, out var dic)) { idDictionary[kv.Value.Quality] = dic = new Dictionary(); } dic[kv.Value.Level] = kv.Key; } } } }