public NestedStaticPartialClassFieldCollectionWithCodeAnalysis(
     NestedStaticClassFieldCollectionWithCodeAnalysis fieldCollection)
 {
     constants = new WrappedCollection <NestedStaticClassConstantWithCodeAnalysis, NestedStaticPartialClassConstantWithCodeAnalysis>(
         fieldCollection.Constants,
         parent => new NestedStaticPartialClassConstantWithCodeAnalysis(parent),
         child => child.Constant,
         value => fieldCollection.Constants = value);
     fields = new WrappedCollection <NestedStaticClassFieldWithCodeAnalysis, NestedStaticPartialClassFieldWithCodeAnalysis>(
         fieldCollection.Fields,
         parent => new NestedStaticPartialClassFieldWithCodeAnalysis(parent),
         child => child.Field,
         value => fieldCollection.Fields = value);
 }
 internal InternalNestedStaticClassWithCodeAnalysis(TStaticClass @class)
 {
     node       = new Node <TStaticClass, ClassDeclarationSyntax>(@class);
     attributes = new AttributeListWrapper <TStaticClass, ClassDeclarationSyntax>(
         node,
         syntax => syntax.AttributeLists,
         (parentSyntax, childSyntax) => parentSyntax.WithAttributeLists(childSyntax));
     classes   = new InternalNestedStaticClassNestedClassCollectionWithCodeAnalysis <TStaticClass>(this);
     delegates = new ClassMemberListWrapper <TStaticClass, NestedStaticClassNestedDelegateWithCodeAnalysis, DelegateDeclarationSyntax>(
         node,
         () => new NestedStaticClassNestedDelegateWithCodeAnalysis());
     enums = new ClassMemberListWrapper <TStaticClass, NestedStaticClassNestedEnumWithCodeAnalysis, EnumDeclarationSyntax>(
         node,
         () => new NestedStaticClassNestedEnumWithCodeAnalysis());
     events            = new InternalNestedStaticClassEventCollectionWithCodeAnalysis <TStaticClass>(this);
     fields            = new InternalNestedStaticClassFieldCollectionWithCodeAnalysis <TStaticClass>(this);
     genericParameters = new GenericParameterDeclarationNodeList <TStaticClass, ClassDeclarationSyntax>(
         node,
         syntax => syntax.TypeParameterList,
         (parentSyntax, childSyntax) => parentSyntax.WithTypeParameterList(childSyntax),
         syntax => syntax.ConstraintClauses,
         (parentSyntax, childSyntax) => parentSyntax.WithConstraintClauses(childSyntax));
     interfaces = new ClassMemberListWrapper <TStaticClass, NestedStaticClassNestedInterfaceWithCodeAnalysis, InterfaceDeclarationSyntax>(
         node,
         () => new NestedStaticClassNestedInterfaceWithCodeAnalysis());
     methods           = new InternalNestedStaticClassMethodCollectionWithCodeAnalysis <TStaticClass>(this);
     properties        = new InternalNestedStaticClassPropertyCollectionWithCodeAnalysis <TStaticClass>(this);
     staticConstructor = new ClassMemberListWrapper <TStaticClass, StaticConstructorWithCodeAnalysis, ConstructorDeclarationSyntax>(
         node,
         () => new StaticConstructorWithCodeAnalysis());
     structs = new InternalNestedStaticClassNestedStructCollectionWithCodeAnalysis <TStaticClass>(this);
     members = new MemberList <TStaticClass, ClassDeclarationSyntax>(
         node,
         (parentSyntax, childSyntax) => parentSyntax.WithMembers(childSyntax))
     {
         { nameof(fields.Constants), () => fields.Constants.Select(item => item.Syntax) },
         { nameof(fields.Fields), () => fields.Fields.Select(item => item.Syntax) },
         { nameof(Enums), () => enums.Select(item => item.Syntax) },
         { nameof(Delegates), () => delegates.Select(item => item.Syntax) },
         { nameof(events.Events), () => events.Events.Select(item => item.Syntax) },
         { nameof(events.EventProperties), () => events.EventProperties.Select(item => item.Syntax) },
         { nameof(Interfaces), () => interfaces.Select(item => item.Syntax) },
         { nameof(Properties), () => Properties.Select(item => item.Syntax) },
         { nameof(methods.Methods), () => methods.Methods.Select(item => item.Syntax) }
     };
 }