輸出應(yīng)該是一個大文本文件,其中每一行的格式為 Number.String,文本是隨機的:347. Bus20175. Yes Yes15. The same2. Hello world178. Tree文件大小必須以字節(jié)為單位指定。對生成大約 1000MB 或更多文件的最快方法感興趣。有我的生成隨機文本的代碼:public string[] GetRandomTextWithIndexes(int size) { var result = new string[size]; var sw = Stopwatch.StartNew(); var indexes = Enumerable.Range(0, size).AsParallel().OrderBy(g => GenerateRandomNumber(0, 5)).ToList(); sw.Stop(); Console.WriteLine("Queue fill: " + sw.Elapsed); sw = Stopwatch.StartNew(); Parallel.For(0, size, i => { var text = GetRandomText(GenerateRandomNumber(1, 20)); result[i] = $"{indexes[i]}. {text}"; }); sw.Stop(); Console.WriteLine("Text fill: " + sw.Elapsed); return result; }public string GetRandomText(int size) { var builder = new StringBuilder(); for (var i = 0; i < size; i++) { var character = LegalCharacters[GenerateRandomNumber(0, LegalCharacters.Length)]; builder.Append(character); } return builder.ToString(); }private int GenerateRandomNumber(int min, int max) { lock (_synlock) { if (_random == null) _random = new Random(); return _random.Next(min, max); } }我不知道如何使用字符串的大小而不是 MB 的大小來處理此代碼。當(dāng)我將 size 設(shè)置為大約 1000000000 時,我收到OutOfMemoryException. 也許有一些更快的方法來生成索引
生成隨機文本文件的更快方法 C#
ibeautiful
2021-07-09 18:00:59