首页 > 解决方案 > 有没有办法将字节数组转换为十六进制字符串?

问题描述

我正在尝试将字节数组转换为十六进制字符串,因此我看到了很多示例来生成此代码

以下代码有此错误:

错误 CS1503 参数 2:无法从“int”转换为“System.Globalization.NumberStyles”SecurityLibrary

有什么帮助吗?

public string bytesToString(byte[,]array ,int row ,int column)
        {
            string result = "";

            for(int i=0; i< row; i++)
            {
                byte[] arr = new byte[4];
                for(int j=0; j<column;j++)
                {
                    arr[j] = array[i,j];

                }

                string  num = Convert.ToString(long.Parse(arr.ToString() ,16) );
                result += num.ToString();
            }

            return result;
        }

标签: c#

解决方案


您不能以这种方式使用字节数组。您需要将每个字节转换为十六进制,这样的事情应该可以工作:

string num = string.Join("", arr.Select(a =>  a.ToString("X")));

或者,如果您喜欢它作为老式十六进制对:

string num = string.Join("", arr.Select((a, i) => i > 0 && i % 2 == 0 ? " " + a.ToString("X") : a.ToString("X")));

推荐阅读