@@ -160,6 +160,32 @@ from sample in _sampleList
160
160
}
161
161
}
162
162
163
+ private void SumAgeByLastnameAndPlaceGroupingWithLet ( )
164
+ {
165
+ var ageLastnameGroups =
166
+ from sample in _sampleList
167
+ group sample by new
168
+ {
169
+ sample . LastName ,
170
+ sample . Place
171
+ }
172
+ into sampleGroup
173
+ let sumAge = sampleGroup . Sum ( x => x . Age )
174
+ let memberCount = sampleGroup . Count ( )
175
+ select
176
+ new
177
+ {
178
+ GroupingKey = sampleGroup . Key ,
179
+ SumAge = sumAge ,
180
+ CountMembers = memberCount
181
+ } ;
182
+ //use result
183
+ foreach ( var sample in ageLastnameGroups )
184
+ {
185
+ Console . WriteLine ( $ "Lastname = { sample . GroupingKey . LastName } , Place = { sample . GroupingKey . Place } , { sample . CountMembers } member(s), SumAge = { sample . SumAge } ") ;
186
+ }
187
+ }
188
+
163
189
private void SumAgeByLastnameAndPlaceGroupingOrdered ( )
164
190
{
165
191
var ageLastnameGroups =
@@ -283,6 +309,9 @@ public override void Execute()
283
309
Section ( "Group by LastName and Place" ) ;
284
310
SumAgeByLastnameAndPlaceGrouping ( ) ;
285
311
LineBreak ( ) ;
312
+ Section ( "Group by LastName and Place (using 'let' keyword)" ) ;
313
+ SumAgeByLastnameAndPlaceGroupingWithLet ( ) ;
314
+ LineBreak ( ) ;
286
315
Section ( "Group by LastName (ordered by member count, desc)" ) ;
287
316
SumAgeByLastnameGroupingOrderedDescending ( ) ;
288
317
LineBreak ( ) ;
0 commit comments