有没有快速的方法将List <byte>转换为十六进制字符串?</byte>

时间:2013-01-30 03:41:14

标签: c# .net c#-4.0 c#-3.0

  

可能重复:
  How do you convert Byte Array to Hexadecimal String, and vice versa?

我有一个List,我需要将其转换为十六进制字符串。我觉得我转换的方式很长很安静。

List<byte> TRIGGER_POL = Data.GetRange(23, 1);
byte[] TRIGGER_POL_temp = new byte[TRIGGER_POL.Count];
TRIGGER_POL_temp[0] = TRIGGER_POL[0];
string TRIGGER_POL_hx = BitConverter.ToString(TRIGGER_POL_temp, 0).Replace("-", string.Empty);

有更快,更有效的方法吗?

谢谢..

3 个答案:

答案 0 :(得分:2)

我个人喜欢这样做的方法是深入.NET SoapHexBinary

中的一个鲜为人知的类
byte[] tmp1 = SoapHexBinary.Parse("DEADBEEF"); //tmp1 now equals the array {0xDE, 0xAD, 0xBE, 0xEF}
string tmp2 = new SoapHexBinary(tmp1).ToString(); //tmp2 now equals "DEADBEEF"

答案 1 :(得分:1)

有很多方法可以做到这一点,但这个可能适合你

 List<string> hexStrings = TRIGGER_POL.Select(b => BitConverter.ToString(new byte[]{b})).ToList();

或者如果你只需要1个字符串

string hex = BitConverter.ToString(TRIGGER_POL.ToArray());

答案 2 :(得分:1)

试试这个:

public static string ConvertToHex(byte[] bytes)
{
    SoapHexBinary hexBin = new SoapHexBinary(bytes);
    return hexBin.ToString();
}
return ConvertToHex(TRIGGER_POL.ToArray());