.Net framework conserves string storage in a table, Intern Pool
. You may see:
String interning and String.Empty - Eric Lippert
If you have two identical string literals in one compilation unit then
the code we generate ensures that only one string object is created by
the CLR for all instances of that literal within the assembly. This
optimization is called "string interning".
String Interning .Net framework
The common language runtime conserves string storage by maintaining
a table, called the intern pool, that contains a single reference to
each unique literal string declared or created programmatically in
your program. Consequently, an instance of a literal string with a
particular value only exists once in the system.