You need to break the permission inheritance on said list.
Assuming you already have the list instance referenced in a "targetList" variable, this code will check if the list uses custom permissions and then break the inheritance if required.
if (!targetList.HasUniqueRoleAssignments)
{
targetList.BreakRoleInheritance(false);
}
after that, you simply need to build the specific Role Assignment item that describes the assignment you want to define and add it to the list permission.
SPRoleAssignment roleAssignment = new SPRoleAssignment(......);
SPRoleDefinition roleDefinition = web.RoleDefinitions.GetByType(....);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
targetList.RoleAssignments.Add(roleAssignment);
(notice: you can also do the same via the SharePoint UI. Just look for "List Permission" while browsing the list settings. This page provides a step by step visual guide)