是否可以将BigIntegers的ArrayList转换为字节数组?如果是这样,怎么样?
_randomNumbers = new ArrayList(_size);
我试过这些
foreach (BigInteger number in _randomNumbers)
{
bytes = number.ToByteArray();
}
答案 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();