Поскольку вы не можете изменить схему JSON, и вы не можете установить постоянное количество свойств, я предлагаю вам использовать JObject
var jobject = JObject.Parse(json);
var results = jobject["results"];
var jobcodes = results["jobcodes"];
var output = jobcodes.Children<JProperty>()
.Select(prop => prop.Value.ToObject<JobCode>())
.ToList();
Внимание: код предполагает , что JSON всегда в правильной схеме. Вы также должны обрабатывать недопустимую схему (например, если свойство не относится к схеме JobCode
).