德尔福7 __ArrayList
问题描述:
在Delphi 7:德尔福7 __ArrayList
我如何阅读在C#中做了一个COM DLL返回一个数组列表?
我尝试这样做:
var
products: IList;
begin
products := MyClass.Products() as IList;
//...
end;
这种模式在文档recomended,但在Delphi 7,我不能申请for或while或任何对我的产品变量。
我的意图是读取结果并将其存储在我的树视图中。
我该怎么做?
注意:IList的是从mscorlib_TLB.pas推导,显然在Delphi 7没有办法扫或算作在最近德尔福
版本
答
随着你叫GetEnumerator
IList
发生,从IEnumerable
继承接口,获取一个IEnumerator
接口并对其进行迭代。在伪代码:
enumerator := products.GetEnumerator;
while enumerator.MoveNext do
DoStuff(enumerator.Current);
我想你需要投Current
在您的代码更有用的东西。如@TLama所述,您还可能需要将IList
转换为IEnumerable
。
'Count'属性应该从['ICollection']继承(http://msdn.microsoft.com/zh-cn/library/system.collections.icollection%28v=vs.110%29.aspx )接口,所以我认为'(Products为ICollection).Count'应该给你元素数。其余的可能是索引['Item'](http://msdn.microsoft.com/en-us/library/system.collections.ilist.item%28v=vs.110%29.aspx)属性。我的意思是[像这样]](http://pastebin.com/VFp3ndz9)。 – TLama 2014-08-28 17:06:46
为什么不让这个答案TLama?然后不需要pastebin – 2014-08-28 17:14:55