Может быть, это может использоваться для эффективной обработки очень больших файлов:
public IEnumerable<string> GetChunks(this string sourceString, int chunkLength)
{
using(var sr = new StringReader(sourceString))
{
var buffer = new char[chunkLength];
int read;
while((read= sr.Read(buffer, 0, chunkLength)) == chunkLength)
{
yield return new string(buffer, 0, read);
}
}
}
На самом деле это работает для любых TextReader
.StreamReader
является наиболее часто используемым TextReader
.Вы можете обрабатывать очень большие текстовые файлы (файлы журнала IIS, файлы журнала SharePoint и т. Д.), Не загружая весь файл, а читая его построчно.