将值添加到列表中的特定 Class 属性
Add value to specific Class property from List
这个解决方案在我看来是一种非常懒惰且廉价的方法,我想知道是否有更好或更适合未来的方法来做到这一点,如果我想添加新的 'Skills' 可以说在未来。
我这里要做的就是给列表中的属性具体添加层级,我知道什么列表索引属于哪个层级。示例:索引 0 包含力量,防御是索引 2。但这可能会在未来发生变化。
public class SkillLogic
{
RpgRepository _skillRpgRepository = new RpgRepository(new DatabaseSkillContext());
public List<Skill> ProcessSkills(int strength, int constitution, int defense, int dexterity, int intelligence, int charisma, int willpower, int perception, int luck)
{
List<Skill> skills = _skillPotionSmashersRepository.GetSkills();
skills[0].Level = strength;
skills[1].Level = constitution;
skills[2].Level = defense;
skills[3].Level = dexterity;
skills[4].Level = intelligence;
skills[5].Level = charisma;
skills[6].Level = willpower;
skills[7].Level = perception;
skills[8].Level = luck;
return skills;
}
}
我建议创建一个枚举(也许是 StatsType?),其中包含强度、体质等条目。这样您的代码就可以更加自我记录。
更好的是,将 GetSkills 更改为 return 字典而不是列表 - 字典键的类型为 StatsType。
这个解决方案在我看来是一种非常懒惰且廉价的方法,我想知道是否有更好或更适合未来的方法来做到这一点,如果我想添加新的 'Skills' 可以说在未来。
我这里要做的就是给列表中的属性具体添加层级,我知道什么列表索引属于哪个层级。示例:索引 0 包含力量,防御是索引 2。但这可能会在未来发生变化。
public class SkillLogic
{
RpgRepository _skillRpgRepository = new RpgRepository(new DatabaseSkillContext());
public List<Skill> ProcessSkills(int strength, int constitution, int defense, int dexterity, int intelligence, int charisma, int willpower, int perception, int luck)
{
List<Skill> skills = _skillPotionSmashersRepository.GetSkills();
skills[0].Level = strength;
skills[1].Level = constitution;
skills[2].Level = defense;
skills[3].Level = dexterity;
skills[4].Level = intelligence;
skills[5].Level = charisma;
skills[6].Level = willpower;
skills[7].Level = perception;
skills[8].Level = luck;
return skills;
}
}
我建议创建一个枚举(也许是 StatsType?),其中包含强度、体质等条目。这样您的代码就可以更加自我记录。
更好的是,将 GetSkills 更改为 return 字典而不是列表 - 字典键的类型为 StatsType。