public Bcl.IEnumerable <NodeActors> FindAllActors(MessageIdentifier messageIdentifier) { var messageRoutes = new Bcl.List <NodeActors>(); if (messageToNodeMap.TryGetValue(messageIdentifier, out var nodes)) { foreach (var node in nodes) { if (nodeActors.TryGetValue(node, out var actors)) { messageRoutes.Add(new NodeActors { NodeIdentifier = node, Actors = actorToMessageMap.Where(kv => actors.Contains(kv.Key) && kv.Value.Contains(messageIdentifier)) .Select(kv => kv.Key) .ToList() }); } } } return(messageRoutes); }