private void BuildCache()
{
_cache = new Dictionary<string, List<IEntity>>();
foreach (var member in _members)
{
List<IEntity> list;
if (!_cache.TryGetValue(member.Name, out list))
{
list = new List<IEntity>();
_cache.Add(member.Name, list);
}
list.Add(member);
}
}