有没有办法将字节数组转换为十六进制字符串?

时间:2019-04-05 15:04:36

标签: c#

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

以下代码有此错误:

错误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;
        }

1 个答案:

答案 0 :(得分:0)

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

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")));