将int列表转换为字节数组

MQS*_*MQS 11 c# list convertall

我试图使用List.ConvertAll方法并失败.我想要做的是将a转换List<Int32>byte[]

我赶紧走了这条路,但我需要找出ConvertAll方法......

List<Int32> integers...

internal byte[] GetBytes()
{
    List<byte> bytes = new List<byte>(integers.Count * sizeof(byte));
    foreach (Int32 integer in integers)
        bytes.AddRange(BitConverter.GetBytes(integer));

    return bytes.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 16

由于您不希望byte[][]每个整数映射到四个字节的数组,因此无法调用ConvertAll.(ConvertAll无法执行一对多转换)

相反,您需要调用LINQ SelectMany方法将每个字节数组展平GetBytes为一个byte[]:

integers.SelectMany(BitConverter.GetBytes).ToArray()
Run Code Online (Sandbox Code Playgroud)