我有一个问题是关于IronPython的用法。假设我有一些集合,然后我从该集合创建了一个IronPython匿名类型,并且我想迭代整个集合。我的代码如下:
这段代码本身是正常的。但是当我使用包含索引的Select方法时,就会出现错误:“'int' object is not iterable”。
我的代码如下:
listInt = List[int]([0, 1, 2, 3, 4])
firstCollection = listInt.Select(lambda(v): type('SomeType', (object,),{"TypeValue": v*v, "TypeIndex": v})())
enumeratorFirst = IEnumerable[object].GetEnumerator(firstCollection)
while enumeratorFirst.MoveNext():
item = enumeratorFirst.Current
这段代码本身是正常的。但是当我使用包含索引的Select方法时,就会出现错误:“'int' object is not iterable”。
![Error](https://istack.dev59.com/P5ZKq.webp)
listInt = List[int]([0, 1, 2, 3, 4])
secondCollection = listInt.Select(lambda(v, i): type('SomeType', (object,), {"TypeValue": v*v, "TypeIndex": i})())
enumeratorSecond = IEnumerable[object].GetEnumerator(secondCollection)
while enumeratorSecond.MoveNext():
item = enumeratorSecond.Current
有人能帮我解决问题吗?为什么第二种情况出错了?
P.S.: 我查看了这里的接口用法:IronPython中的接口。 对于匿名类型的使用,我查看了这里:Python中的匿名对象。