C#赋值问题: 16进制格式string 转byte[]. 如:“0x31”赋值给byte[0]

求助:
string里面存的全是16进制的数据:“0x31,0x32,033”,
现需要将该数据赋值到byte[],有什么好解决方案吗??

        string str = "0x31,0x32,0x33";
        string[] chars = str.Split(',');
        byte[] bytes = new byte[chars.Length];
        for (int i = 0; i < chars.Length; i++)
        {
            bytes[i] = Convert.ToByte(chars[i], 16);
        }