从List中为特定的Class属性添加值

时间:2017-06-04 11:59:12

标签: c# list ienumerable

这个解决方案在我看来是一种非常懒惰和廉价的方式,我想知道是否有更好或更多未来证明的方法来做到这一点,如果我想添加新的'技巧'在未来可以这么说。

我在这里要做的就是列表中属性的具体添加级别,我知道哪个列表索引属于哪个级别。示例:索引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;
    }
}

1 个答案:

答案 0 :(得分:0)

我建议创建一个Enum(也许是StatsType?),其中包含强度,体质等条目。然后你的代码可以更自我记录。

更好的是,将GetSkills更改为返回Dictionary而不是List - 字典Key的类型为StatsType。