Grouping data using associative arrays of arrays
// Grouping data using associative arrays of arrays
type
TStudent = record
Name: String;
Grade: String;
end;
var students: array of TStudent;
procedure AddStudent(name, grade: String);
var s: TStudent;
begin
s.Name := name; s.Grade := grade;
students.Add(s);
end;
AddStudent('Alice', 'A');
AddStudent('Bob', 'B');
AddStudent('Charlie', 'A');
AddStudent('David', 'C');
AddStudent('Eve', 'B');
// Group students by grade
var groups: array [String] of array of String;
for var s in students do begin
groups[s.Grade].Add(s.Name);
end;
PrintLn('Students by Grade:');
for var g in groups.Keys do begin
PrintLn('Grade ' + g + ': ' + groups[g].Join(', '));
end;
Students by Grade: Grade C: David Grade A: Alice, Charlie Grade B: Bob, Eve