C#将ReadOnlyCollection <int>转换为byte []数组

时间:2018-03-22 05:42:56

标签: c# arrays type-conversion readonly-collection

给定一个只读的整数集合,如何将其转换为字节数组?

ReadOnlyCollection<int> collection = new List<int> { 118,48,46,56,46,50 }.AsReadOnly(); //v0.8.2

将'collection'转换为byte []的优雅方法是什么?

1 个答案:

答案 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];
}