public ICollection<Skill> GetList(Func<Skill, bool> predicate = null)
{
lock (_skills)
{
// Return all or only the ones matching the predicate.
var skills = (predicate == null ? _skills.Values : _skills.Values.Where(predicate));
return skills.ToArray();
}
}