给定一个只读的整数集合,如何将其转换为字节数组?
ReadOnlyCollection<int> collection = new List<int> { 118,48,46,56,46,50 }.AsReadOnly(); //v0.8.2
将'collection'转换为byte []的优雅方法是什么?
答案 0 :(得分:3)
您可以使用LINQ的Select
方法将每个元素从int
转换为byte
。
这将为您提供IEnumerable<byte>
。然后,您可以使用ToArray()
扩展方法将其转换为byte[]
。
collection.Select(i => (byte)i).ToArray();
如果您不想使用LINQ,那么您可以实例化数组并使用for循环来迭代集合,分配数组中的每个值。
var byteArray = new byte[collection.Count];
for (var i = 0; i < collection.Count; i++)
{
byteArray[i] = (byte)collection[i];
}