Почему вы используете StreamReader для чтения данных JSON?
вы можете использовать JObject для анализа вашего json и получения данных из него.
var json = @"{""data"":[""4482359"",""12526"",""5"",""5"","""",""Yes, that is right"",""1""]}";
var obj = JObject.Parse(json);
List<string> lst = (obj["data"]).ToObject<List<string>>();
var result = JsonConvert.SerializeObject(lst);
Это идет на значение по умолчанию для сборок конечных версий (возможно, Вы изменили настройки для Сборок конечных версий?). Выключите его для создания отладки легче. Для кода выпуска включите его.
Чтобы ясно дать понять это, оптимизация делает подставляемые функции и устраняет некоторые переменные. При отладке оптимизированного кода Вы не получите столько же справки IDE, как обычно, так как часть кода на самом деле больше не существует. Таким образом для отладки, повернитесь если от (значения по умолчанию).
На языках как оптимизация C++ иногда (часто) имеет критический побочный эффект, который нужно рассмотреть. Насколько я знаю, это не или почти не случай для C#, таким образом, от точки правильности Вашего кода, вероятно, не имеет значения, если Вы оптимизируете или нет.
Оптимизация кода стала довольно хорошей в C#3 - это делает много умных тонких настроек производительности, которые изменяют Ваш код еще много в IL, чем Вы могли бы ожидать.
Некоторые инструменты путаницы (и некоторые другие инструменты IL как ILMerge) могут иногда повреждать блок с оптимизацией на. Чем больше инструментов IL Вы используете, тем более вероятно необходимо получить серьезные проблемы с оптимизацией.
Также как @Brian Rasmussen уже сказал (+1) - Вы хотите это прочь для отладки, на для выпусков.