#pragma warning disable CS8601 // Possible null reference assignment. namespace Fantasy; public partial class EquipValueConfigData { private readonly Dictionary _equipValueDic = new Dictionary(); public override void EndInit() { foreach (var equipValueConfig in List) { var equipValueKey = GetEquipValueKey(equipValueConfig.ItemConfigId, equipValueConfig.Quality); _equipValueDic.Add(equipValueKey, equipValueConfig); } } public bool TryGetValue(uint itemConfigId, int quality, out EquipValueConfig value) { var equipValueKey = GetEquipValueKey(itemConfigId, quality); if (!_equipValueDic.TryGetValue(equipValueKey, out value)) { Log.Error($"itemConfigId: {itemConfigId} and quality: {quality} not found in EquipValueConfig!"); return false; } return true; } private ulong GetEquipValueKey(uint itemConfigId, int quality) { return ((ulong)itemConfigId << 32) | (uint)quality; } }