// you may want to get a mutable copy again at some point.
    public IssuerRecord GetMutableCopy()
    {
        var copy = new IssuerRecord
        {
            PropA      = PropA,
            Subrecords = new List <IssuerRecord>(Subrecords.Select(r => r.GetMutableCopy()))
        };

        return(copy);
    }
 public ImmutableIssuerRecord(IssuerRecord record)
 {
     PropA      = record.PropA;
     Subrecords = record.Subrecords.Select(r => new ImmutableIssuerRecord(r));
 }