Ironpython引用C#數據結構

雖然Ironpython可使用.net中的對象,可是在真正使用的時候,仍是有一些須要注意的地方,這裏列出平時整理出來的,供參看
1. 使用.net中的Listpython

from System.Collections.Generic import List, Dictionary
int_list = List[int]()

一樣Byte類型的值的定義數組

from System import Byte
b = Byte(1)

2.C# lambada.net

>>> from System.Collections.Generic import IEnumerable, List
>>> list = List[int]([1, 2, 3])
>>> import clr
>>> clr.AddReference("System.Core")
>>> from System.Linq import Enumerable
>>> Enumerable.Any(list,lambda x:x<2)
True
>>> Enumerable.Any(list,lambda x:x>2)
True
>>> Enumerable.Any(list,lambda x:x>4)
False

3.C#中的byte[]數組,在Ironpython中這樣表示bbyte = Array[Byte]
固然,首先須要import數組和Byte from System import Array,Byte
還有一種方式是經過System.Type來達到code

bbtype = System.Type.GetType('System.Byte')
b_buffer = System.Array.CreateInstance(bbtype, 1024)

4.ref 和 out參數類型對象

>>> from System.Collections.Generic import Dictionary
>>> d = { "a":100.1, "b":200.2, "c":300.3 }
>>> d = Dictionary[str, float](d)
>>> d.TryGetValue("b")
(True, 200.2)
>>> import clr
>>> r = clr.Reference[float]()
>>> d.TryGetValue("b", r)
True
>>> r.Value
200.2
>>>
相關文章
相關標籤/搜索