private IEnumerable <PrefixDeclaration> GetAvailableFrom(ConstructionNode root, ConstructionNode lastToCheck) { var myPrefixes = annotator.GetPrefixesFor(root); IEnumerable <PrefixDeclaration> prefixesFromChildren; if (root != lastToCheck) { prefixesFromChildren = root.Assignments .SelectMany(assignment => assignment.Children) .Select(constructionNode => GetAvailableFrom(constructionNode, lastToCheck)) .SelectMany(enumerable => enumerable); } else { prefixesFromChildren = new PrefixDeclaration[0]; } return(myPrefixes.Concat(prefixesFromChildren).ToList()); }
protected bool Equals(PrefixDeclaration other) { return(string.Equals(prefix, other.prefix) && string.Equals(namespaceName, other.namespaceName)); }