C # - StringBuilder - Исключение нехватки памяти - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь распаковать поток 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...