2010-06-11 31 views
4

我有一個python方法返回一個Python字節array.array('c')。python數組和.net數組之間的轉換

現在,我想使用System.Runtime.InteropServices.Marshal.Copy複製此數組。然而這個方法需要一個.NET數組。

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) 

有沒有辦法讓這項工作不復制數據?如果不是,我該如何將Python數組中的數據轉換爲.NET數組?

回答

6

爲Python數組轉換成.NET數組:

import array 
from System import Array, Char 

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

y = Array[Char](x) 

這裏是關於在創建的IronPython類型數組一些信息: http://www.ironpython.info/index.php?title=Typed_Arrays_in_IronPython

+0

感謝響應。我已經解決了IronPython新組織中的編組問題(http://groups.google.com/group/ironpy/t/91a344a5ddb7df39) – MvdD 2010-06-17 05:39:45