@@ -16,6 +16,8 @@ public class ClassTemplateModel : ClassTemplateModelBase
16
16
private readonly CSharpTypeResolver _resolver ;
17
17
private readonly JsonSchema _schema ;
18
18
private readonly CSharpGeneratorSettings _settings ;
19
+ internal readonly List < PropertyModel > _properties ;
20
+ private readonly List < PropertyModel > _allProperties ;
19
21
20
22
/// <summary>Initializes a new instance of the <see cref="ClassTemplateModel"/> class.</summary>
21
23
/// <param name="typeName">Name of the type.</param>
@@ -32,19 +34,27 @@ public ClassTemplateModel(string typeName, CSharpGeneratorSettings settings,
32
34
_settings = settings ;
33
35
34
36
ClassName = typeName ;
35
- Properties = _schema . ActualProperties . Values
36
- . Where ( p => ! p . IsInheritanceDiscriminator )
37
- . Select ( property => new PropertyModel ( this , property , _resolver , _settings ) )
38
- . ToArray ( ) ;
37
+
38
+ var actualProperties = _schema . ActualProperties ;
39
+ _properties = new List < PropertyModel > ( actualProperties . Count ) ;
40
+ foreach ( var property in actualProperties . Values )
41
+ {
42
+ if ( ! property . IsInheritanceDiscriminator )
43
+ {
44
+ _properties . Add ( new PropertyModel ( this , property , _resolver , _settings ) ) ;
45
+ }
46
+ }
39
47
40
48
if ( schema . InheritedSchema != null )
41
49
{
42
50
BaseClass = new ClassTemplateModel ( BaseClassName ! , settings , resolver , schema . InheritedSchema , rootObject ) ;
43
- AllProperties = Properties . Concat ( BaseClass . AllProperties ) . ToArray ( ) ;
51
+ _allProperties = new List < PropertyModel > ( _properties . Count + BaseClass . _allProperties . Count ) ;
52
+ _allProperties . AddRange ( _properties ) ;
53
+ _allProperties . AddRange ( BaseClass . _allProperties ) ;
44
54
}
45
55
else
46
56
{
47
- AllProperties = Properties ;
57
+ _allProperties = _properties ;
48
58
}
49
59
}
50
60
@@ -87,10 +97,10 @@ public ClassTemplateModel(string typeName, CSharpGeneratorSettings settings,
87
97
// string.Empty) : null;
88
98
89
99
/// <summary>Gets the property models.</summary>
90
- public IEnumerable < PropertyModel > Properties { get ; }
100
+ public IEnumerable < PropertyModel > Properties => _properties ;
91
101
92
102
/// <summary>Gets the property models with inherited properties.</summary>
93
- public IEnumerable < PropertyModel > AllProperties { get ; }
103
+ public IEnumerable < PropertyModel > AllProperties => _allProperties ;
94
104
95
105
/// <summary>Gets a value indicating whether the class has description.</summary>
96
106
public bool HasDescription => _schema is not JsonSchemaProperty &&
0 commit comments