大字节数组的 C# 程序性能 [重复]

Posted

技术标签:

【中文标题】大字节数组的 C# 程序性能 [重复]【英文标题】:C# Program performance with big bytearrays [duplicate] 【发布时间】:2014-12-27 07:16:03 【问题描述】:

我正在尝试使用 C# 创建一个简单的十六进制编辑器。 为此,我将文件写入字节数组,效果很好。但是,一旦我以字符串的形式将字节放入文本框,程序的整体性能就会变得非常糟糕。例如,一个 190kb 的文件大约需要 40 秒,直到它显示在文本框中。虽然程序没有响应。

功能:

void open()
    
        fullstring = "";

        OpenFileDialog op = new OpenFileDialog();
        op.ShowDialog();
        file = op.FileName;

        byte[] fileB = File.ReadAllBytes(file);

        long b = fileB.Length;

        for (int i = 0; i < fileB.Length; i++)
        
            fullstring = fullstring + fileB[i].ToString("X") + "  ";
        

        textBox9.Text = fullstring;
    

有没有办法提高这个函数的性能?

【问题讨论】:

确实重复了 2 个问题,我认为 how to convert byte array to hex 更有帮助,但也请查看 ***.com/questions/10341188/…,尤其是指向 Eric Lippert 的 blog 的链接 【参考方案1】:

看看这个帖子How do you convert Byte Array to Hexadecimal String, and vice versa? 您可以使用那里的代码将字节数组输出到文本文件。您在代码中遇到的一个问题是您使用的是字符串连接而不是 StringBuilder。最好使用 StringBuilder 否则性能会下降。

【讨论】:

以上是关于大字节数组的 C# 程序性能 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# 在表示字符串的大字节数组中寻找子数组

C#字节数组到字符串数组[重复]

将字节数组从 c++ 传递到 c# 程序集都有哪些不同的方法?

C# MVC - 上传多个大文件创建字节数组

十六进制字符串到字节数组 C# [重复]

如何将字节数组转换为流 [重复]