you add custom fields to an array, but he's using a list for ease, then converting it to an array at the end
if you had a bunch of custom fields you are adding... or maybe it's conditional, then you can just keep pushing your custom fields onto a list.
personally I prefer something such as:
var apparel_size = new SelectCustomFieldRef(){
scriptId = "my_custom_field_id",
value = new ListOrRecordRef(){
name = "Something"
}
};
cfList.Add(apparel_size);