将值添加到列表中的特定 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。