是否可以将BigIntegers的ArrayList转换为字节数组?如果是这样,怎么办?

 _randomNumbers = new ArrayList(_size);


我尝试了这些

foreach (BigInteger number in _randomNumbers)
{
    bytes = number.ToByteArray();
}

最佳答案

我将首先使用List<BigInteger>。不再需要ArrayList了。然后,您可以使用此LINQ查询:

var bigIntegers = new List<System.Numerics.BigInteger>(); // fill...
byte[][] allByteArrays = bigIntegers.Select(bi => bi.ToByteArray()).ToArray();


否则,您需要转换ArrayList中的每个对象:

byte[][] allByteArrays = bigIntegersArrayList.Cast<BigInteger>()
    .Select(bi => bi.ToByteArray())
    .ToArray();


为了完整起见,不使用LINQ的经典方法会更有效:

byte[][] allByteArrays = new byte[bigIntegers.Count][];
for (int i = 0; i < allByteArrays.Length; i++)
    allByteArrays[i] = bigIntegers[i].ToByteArray();

10-08 02:02