Using .NET Collection Classes and Interfaces in Python Scripts
Some of the API functions specified above use .Net collection
classes and interfaces, that is, Array class, IList interface, IEnumerable interface, and IDictionary interface. The following section describes
how to work with the .Net collection objects in Python scripts.
.NET Array, IEnumerable, and IList objects can be indexed
and iterated over as if they were Python lists. You can also check for
membership using 'in'. To get .Net Array and IList sizes you can use
Python's len or .Net Count.
Example:
Getting size:
arraySize = doubleDataArray.Count
arraySize = len(doubleDataArray)
listSize = sweepsNamesList.Count
listSize = len(sweepsNamesList)
Iterating:
for sweep in sweepsNamesList:
print sweep
for in in xrange(listSize)
print sweepsNamesList[i]
Checking for membership:
if 'Time' in sweepsNamesList:
doThis()
else:
doThat()
For .NET IDictionary, the same as for Array and IList,
you can get size with len or Count and check for membership of the
keys using in'. Getting values for the keys also works the same way
as in Python dict.
Example
Getting size:
varValuesSize = varValues.Count
varValuesSize = len(varValues)
Checking for membership:
if 'offset' in varValues:
print varValues['offset']
Getting value:
if 'offset' in varValues:
offsetValue = varValues['offset']
As for iteration .NET Dictionary is different from Python
dict. While iterating, Python dict will return keys, .Net Dictionary
will return .Net KeyValuePair.
Example:
Iterating:
for .Net IDictionary:
for varPair in varValues: #varPair is of .Net KeyValuePair type
varName = varPair.Key
varValue = varPair.Value
for python dict:
for varName in varValues:
varValue = varValues[varName]
You can use Python types instead of .Net types if you
prefer. For this you need to cast .Net Array and .Net iList to a Python
list type and .Net Dictionary to a Python dict type.
Casting should not be used for data arrays - it can be extremely costly for the memory usage as well as time consuming.
Example:
aPythonList = list(dotNetArray)
aPythonList = list(dotNetList)
aPythonDict = dict(dotNetDictionary)