Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert between python array and .NET Array

I have a python method that returns a Python byte array.array('c').

Now, I want to copy this array using System.Runtime.InteropServices.Marshal.Copy. This method however expects a .NET array.

import array
from System.Runtime.InteropServices import Marshal

bytes = array.array('c')
bytes.append('a')
bytes.append('b')
bytes.append('c')
Marshal.Copy(bytes, dest, 0, 3)

Is there a way to make this work without copying the data? If not, how do I convert the data in the Python array to the .NET array?

like image 344
MvdD Avatar asked Jun 11 '10 06:06

MvdD


1 Answers

To convert a python array to a .NET Array:

import array
from System import Array, Char

x = array.array('c', 'abc')

y = Array[Char](x)

Here is some information on creating typed Arrays in IronPython: http://www.ironpython.info/index.php?title=Typed_Arrays_in_IronPython

like image 124
Gary Kerr Avatar answered Sep 30 '22 10:09

Gary Kerr