@@ -116,6 +116,7 @@ public partial class EnumNullsDto
116116 public static EnumNullsDto From ( EnumNulls enumNulls ) => ( selectEnumNullsFunc ??= SelectEnumNullsExpression . Compile ( ) ) ( enumNulls ) ;
117117}
118118
119+
119120//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
120121
121122
@@ -149,4 +150,129 @@ public partial class EnumNullsTypeDto
149150 } ;
150151
151152 public static EnumNullsTypeDto From ( EnumNulls enumNulls ) => ( selectEnumNullsTypeFunc ??= SelectEnumNullsTypeExpression . Compile ( ) ) ( enumNulls ) ;
152- }
153+ }
154+
155+
156+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
157+
158+
159+ public class EnumerableNulls
160+ {
161+ public IEnumerable < string > Value1 { get ; set ; } = default ! ;
162+ public IEnumerable < string > Value2 { get ; set ; } = default ! ;
163+ public IEnumerable < string > ? Value3 { get ; set ; }
164+ public IEnumerable < string > ? Value4 { get ; set ; }
165+ }
166+
167+ [ AutoSelect < EnumerableNulls > ]
168+ public partial class EnumerableNullsDto
169+ {
170+ public IEnumerable < string > Value1 { get ; set ; } = default ! ;
171+ public IEnumerable < string > ? Value2 { get ; set ; }
172+ public IEnumerable < string > Value3 { get ; set ; } = default ! ;
173+ public IEnumerable < string > ? Value4 { get ; set ; }
174+ }
175+
176+ // expected
177+ public partial class EnumerableNullsDto
178+ {
179+ private static Func < EnumerableNulls , EnumerableNullsDto > selectEnumerableNullsFunc ;
180+
181+ public static Expression < Func < EnumerableNulls , EnumerableNullsDto > > SelectEnumerableNullsExpression { get ; } = a => new EnumerableNullsDto
182+ {
183+ Value1 = a . Value1 ,
184+ Value2 = a . Value2 ,
185+ Value3 = a . Value3 ,
186+ Value4 = a . Value4
187+ } ;
188+
189+ public static EnumerableNullsDto From ( EnumerableNulls enumerableNulls ) => ( selectEnumerableNullsFunc ??= SelectEnumerableNullsExpression . Compile ( ) ) ( enumerableNulls ) ;
190+ }
191+
192+
193+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
194+
195+
196+ [ AutoSelect < EnumerableNulls > ]
197+ public partial class CollectionsNullsDto
198+ {
199+ public ICollection < string > Value1 { get ; set ; } = default ! ;
200+ public ICollection < string > ? Value2 { get ; set ; }
201+ public ICollection < string > Value3 { get ; set ; } = default ! ;
202+ public ICollection < string > ? Value4 { get ; set ; }
203+ }
204+
205+ // expected
206+ public partial class CollectionsNullsDto
207+ {
208+ private static Func < EnumerableNulls , CollectionsNullsDto > selectEnumerableNullsFunc ;
209+
210+ public static Expression < Func < EnumerableNulls , CollectionsNullsDto > > SelectEnumerableNullsExpression { get ; } = a => new CollectionsNullsDto
211+ {
212+ Value1 = a . Value1 . ToList ( ) ,
213+ Value2 = a . Value2 . ToList ( ) ,
214+ Value3 = a . Value3 . ToList ( ) ,
215+ Value4 = a . Value4 . ToList ( )
216+ } ;
217+
218+ public static CollectionsNullsDto From ( EnumerableNulls enumerableNulls ) => ( selectEnumerableNullsFunc ??= SelectEnumerableNullsExpression . Compile ( ) ) ( enumerableNulls ) ;
219+ }
220+
221+
222+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
223+
224+
225+ public class ValueObject
226+ {
227+ public string Value { get ; set ; } = default ! ;
228+ }
229+
230+ public class ValueSelectNulls
231+ {
232+ public ICollection < ValueObject > Value1 { get ; set ; } = default ! ;
233+ public ICollection < ValueObject > Value2 { get ; set ; } = default ! ;
234+ public ICollection < ValueObject > ? Value3 { get ; set ; }
235+ public ICollection < ValueObject > ? Value4 { get ; set ; }
236+ }
237+
238+ public class ValueDto
239+ {
240+ public string Value { get ; set ; } = default ! ;
241+ }
242+
243+ [ AutoSelect < ValueSelectNulls > ]
244+ public partial class ValueSelectNullsDto
245+ {
246+ public IReadOnlyList < ValueDto > Value1 { get ; set ; } = default ! ;
247+ public IReadOnlyList < ValueDto > ? Value2 { get ; set ; }
248+ public IReadOnlyList < ValueDto > Value3 { get ; set ; } = default ! ;
249+ public IReadOnlyList < ValueDto > ? Value4 { get ; set ; }
250+ }
251+
252+ // expected
253+ public partial class ValueSelectNullsDto
254+ {
255+ private static Func < ValueSelectNulls , ValueSelectNullsDto > selectValueSelectNullsFunc ;
256+
257+ public static Expression < Func < ValueSelectNulls , ValueSelectNullsDto > > SelectValueSelectNullsExpression { get ; } = a => new ValueSelectNullsDto
258+ {
259+ Value1 = a . Value1 . Select ( b => new ValueDto
260+ {
261+ Value = b . Value
262+ } ) . ToList ( ) ,
263+ Value2 = a . Value2 . Select ( b => new ValueDto
264+ {
265+ Value = b . Value
266+ } ) . ToList ( ) ,
267+ Value3 = a . Value3 . Select ( b => new ValueDto
268+ {
269+ Value = b . Value
270+ } ) . ToList ( ) ,
271+ Value4 = a . Value4 . Select ( b => new ValueDto
272+ {
273+ Value = b . Value
274+ } ) . ToList ( )
275+ } ;
276+
277+ public static ValueSelectNullsDto From ( ValueSelectNulls valueSelectNulls ) => ( selectValueSelectNullsFunc ??= SelectValueSelectNullsExpression . Compile ( ) ) ( valueSelectNulls ) ;
278+ }
0 commit comments