using System.Collections.Generic;
public class CodeTable : List<CodeRecord>
public CodeTable Add(object recordObj)
if (recordObj is CodeRecord record) base.Add(record ?? throw new NullReferenceException("CodeTable cannot add a nullable CodeRecord (recordObj)"));
record = new CodeRecord();
recordObj.GetType().GetProperties().ToList().ForEach(prop =>
record.GetType().GetField(prop.Name)?
.SetValue(record, prop.GetValue(recordObj, null))
base.Add(record ?? throw new NullReferenceException("CodeTable cannot add a nullable object (recordObj)"));
public static void Main()
var codeTable = new CodeTable();
codeTable.Add(new CodeRecord() {
Console.WriteLine(JsonConvert.SerializeObject(codeTable));