Suppose you have a class Person :
public class Person
{
public string Name { get; set;}
public IEnumerable Roles {get; set;}
}
Assuming you actually want to populate the Roles property somehow, then encapsulate that by making it's setter private and initialising it to a new list in the constructor:
public class Person
{
public string Name { get; set; }
public IList Roles { get; private set; }
public Person()
{
Roles = new List();
}
}
If you really really want to have the public setter, leave Roles with a value of null and avoid the object allocation.