static IEnumerable <Tree <Type> .TreeNode> GetNodes(Type T) { Type[] Interfaces = T.GetInterfaces(); Type[] Types = Interfaces.Except(Interfaces.SelectMany(Typ => Typ.GetInterfaces())).ToArray(); for (int i = 0; i < Types.Length; i++) { Tree <Type> .TreeNode N = new Tree <Type> .TreeNode(GetNodes(Types[i])); N.Userdata = Types[i]; yield return(N); } }