private void AddNodeToLookup(INode node) { if (node.UntypedValue != null) { #if PLATFORM_UNITY List <INode> list; if (!_lookupCache.TryGetValue(node.UntypedValue, out list)) { _lookupCache.Add(node.UntypedValue, new List <INode>()); } _lookupCache[node.UntypedValue].Add(node); #else var list = _lookupCache.GetOrCreateValue(node.UntypedValue); list.Add(node); #endif } foreach (var child in node.Children) { AddNodeToLookup(child); } }