The string itself is not stored in the struct. Instead a reference to the string is stored in the struct, so the struct size never changes.
string
is not a value type; .NET strings are interned, which means that each unique string is stored in a look-up table in memory.