Dlaczego .NET tworzy nowe podciągi zamiast wskazywać na istniejące ciągi?

Z krótkiego wyglądu za pomocą Reflectora wyglądaString.Substring() przydziela pamięć dla każdego podciągu. Czy mam rację, że tak jest? Myślałem, że nie będzie to konieczne, ponieważ łańcuchy są niezmienne.

Moim podstawowym celem było stworzenieIEnumerable<string> Split(this String, Char) metoda rozszerzenia, która nie przydziela dodatkowej pamięci.

questionAnswers(5)

yourAnswerToTheQuestion