为了账号安全,请及时绑定邮箱和手机立即绑定

生成随机文本文件的更快方法 C#

生成随机文本文件的更快方法 C#

C#
ibeautiful 2021-07-09 18:00:59
输出应该是一个大文本文件,其中每一行的格式为 Number.String,文本是随机的:347. Bus20175. Yes Yes15. The same2. Hello world178. Tree文件大小必须以字节为单位指定。对生成大约 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 的大小来处理此代码。当我将 size 设置为大约 1000000000 时,我收到OutOfMemoryException. 也许有一些更快的方法来生成索引
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信