Я пытаюсь распаковать поток gzip. Я использую StringBuilder для чтения содержимого из потока и выполнения некоторых манипуляций, чтобы получить его в формате, который я хотел бы использовать. После распаковки потока размер объекта-строителя строки составляет примерно 100 МБ. При попытке преобразовать этот String Builder в строку с помощью метода ToString я получаю исключение нехватки памяти. Я разместил фрагмент моего кода ниже. Любая помощь по этому вопросу будет принята с благодарностью.
using (var gzip = new GZipStream(BlobStream, CompressionMode.Decompress, true))
{
using (var sr = new StreamReader(gzip))
{
//Return early if no need to do conversions
if (!asJson)
{
return await sr.ReadToEndAsync();
}
while((line = await sr.ReadLineAsync()) != null)
{
//internal processing happens here
sb.Append($"{line},");
}
}
}
sb.Replace(',', ']', sb.Length - 1, 1);
return sb.ToString();