Listing skills for role-playing characters
It might be a bit cleaner if you introduce a new class (or struct) containing both AttackSkillData and SkillAttackType.

Consider something like this;

public class AttackSkill
{
    public AttackSkillData data;
    public SkillAttackType type;
}


And consider adding a List&lt;AttackSkill&gt;() instead of five different lists.

Your code should then look like this;

public class SkillsComponent
{
    private List&lt;AttackSkill&gt; skills = new List&lt;AttackSkill&gt;();

    public SkillsComponent(List&lt;AttackSkill&gt; listOfAllSkills)
    {
        this.skills = listOfAllSkills;
    }

    public void AddNewSkill(SkillAttackType skillAttackType, AttackSkillData data)
    {           
        skills.Add(new AttackSkill{ type = skillAttackType, data = data});     
    }

    public List&lt;AttackSkill&gt; GetListOfLearnedSkills(SkillAttackType skillAttackType)
    {
        return skills.Where(s =&gt; s.type == skillAttackType).ToList();
    }
}


You can then acces any type of skill using a Where() where needed. For example, to get all skills having SkillAttackType.Strike;

List&lt;AttackSkill&gt; strikeSkills = skills.Where(s =&gt; s.type == SkillAttackType.Strike).ToList();


It will make your code less noisy and you will be rid of the switch. Double score!