using System.Collections.Generic; namespace Wizard; public class CardKeyWordCommonCache { private Dictionary> _keyWordCache = new Dictionary>(); private Dictionary> _keywordCardListCache = new Dictionary>(); public IList GetCardListFromKeyWord(string keyWord) { if (_keywordCardListCache.TryGetValue(keyWord, out var value)) { return value; } List cardIdsInDesc = BattleKeywordInfoListMgr.GetCardIdsInDesc(Data.Master.BattleKeyWordDic[keyWord]); _keywordCardListCache[keyWord] = cardIdsInDesc; return cardIdsInDesc; } public IList GetCloneList(CardParameter param) { return new List(Get(param)); } public void CacheKeyWord(CardParameter param) { Get(param); } private IList Get(CardParameter param) { if (_keyWordCache.TryGetValue(param.CardId, out var value)) { return value; } IList keywords = BattleKeywordInfoListMgr.GetKeywords(param); _keyWordCache[param.CardId] = keywords; return keywords; } }