C# 转换数字大于255的.ToBase64String()

C# 转换数字大于255的.ToBase64String(),c#,base64,C#,Base64,我使用下面的代码将数字列表转换为Base64编码字符串 问题是,只要我尝试255以上的内容,就会得到System.OverflowException,因为它溢出了字节容量 这样做的好方法是什么?有一个例子,但我只是想知道是否有其他方法使这项工作 private string DecimalToBase64(List<int> lst) { byte[] arr = new byte[lst.Count]; for(int i = 0; i < arr.Leng

我使用下面的代码将数字列表转换为Base64编码字符串

问题是,只要我尝试255以上的内容,就会得到
System.OverflowException
,因为它溢出了字节容量

这样做的好方法是什么?有一个例子,但我只是想知道是否有其他方法使这项工作

private string DecimalToBase64(List<int> lst)
{
    byte[] arr = new byte[lst.Count];

    for(int i = 0; i < arr.Length; i++)
    {
        arr[i] = Convert.ToByte(lst[i]);
    }

    return Convert.ToBase64String(arr);
}
私有字符串DecimalToBase64(列表lst)
{
字节[]arr=新字节[lst.Count];
对于(int i=0;i
尝试以下代码:

public static string DecimalToBase64(List<int> lst)
{
    var bytes = new List<byte>();
    foreach (var item in lst)
        bytes.AddRange(BitConverter.GetBytes(item));
    return Convert.ToBase64String(bytes.ToArray());
}
公共静态字符串DecimalToBase64(列表lst)
{
var bytes=新列表();
foreach(lst中的var项目)
bytes.AddRange(BitConverter.GetBytes(项));
返回Convert.ToBase64String(bytes.ToArray());
}
阅读有关字节顺序的更多信息尝试以下操作:

        private string DecimalToBase64(List<int> lst)
        {
            List<byte> arr = new List<byte>();

            foreach(int number in lst )
            {
                arr.AddRange(BitConverter.GetBytes(number));
            }

            return Convert.ToBase64String(arr.ToArray());
        }
私有字符串DecimalToBase64(列表lst)
{
List arr=新列表();
foreach(lst中的整数)
{
arr.AddRange(BitConverter.GetBytes(数字));
}
返回Convert.ToBase64String(arr.ToArray());
}

每个
int
长度为4个
字节。您需要在循环中对此进行说明

private static string IntsToBase64(IEnumerable<int> lst)
{
    var arr = lst.SelectMany(i => BitConverter.GetBytes(i))
                    .ToArray();
    return Convert.ToBase64String(arr);
}

private static IEnumerable<int> Base64ToInts(string base64)
{
    var buffer = Convert.FromBase64String(base64);
    for (var i = 0; i < buffer.Length; i += 4)
        yield return BitConverter.ToInt32(buffer, i);
}
。。。输出

0,1,2,3,4,5,6,7,8,9
AAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAA==
0,1,2,3,4,5,6,7,8,9

一个字节只能是0-255:新字节[lst.Count]
int
是32位而不是8位。对,我知道这两个语句。因为我不确定有没有好的解决办法。BitConverter类是缺失的部分。啊,那个BitConverter类是我缺失的
0,1,2,3,4,5,6,7,8,9
AAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAA==
0,1,2,3,4,5,6,7,8,9