public static readonly List MyList; //Initialize MyList in the static constructor static MyObject() { ... } public static readonly List MyList = GetMyList(); //Returns the list private static List GetMyList() { ... } public static readonly List MyList = () => { ... return list; }; () => { ... return list; }; Func> createList = () => { ... return list; }; MyList = createList(); public static readonly List MyList = new Func>( () => { // Create your list here return new List(); })(); public static readonly List MyList = new Func>(() => { return new List(); })(); //<-- the parentheses that invoke