BigIntegers的ArrayList到字节数组

时间:2014-05-21 10:30:10

标签: c# arraylist biginteger

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

 _randomNumbers = new ArrayList(_size);

我试过这些

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

1 个答案:

答案 0 :(得分:2)

我首先会使用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();