看到一个针对在 C# 中生成的大型 Excel 文件的解决方案,该解决方案运行良好,但一直在努力将 Func<List> getList) 部分转换为 F#。
public class ElementListProxy : OpenXmlElementList
{
private readonly List<OpenXmlElement> _list;
public ElementListProxy (Func<List<OpenXmlElement>> getListFunc)
{
_list = getListFunc ();
}
public override OpenXmlElement GetItem (int index)
{
return _list.Skip(index).FirstOrDefault ();
}
public override IEnumerator<OpenXmlElement> GetEnumerator ()
{
return _list.GetEnumerator ();
}
public override int Count => _list.Count;
}
}
试过这个但不对:
type Delegate1 = delegate of unit -> ResizeArray<OpenXmlElement>
type ElementListProxy () =
inherit OpenXmlElementList ()
member val private _list : ResizeArray<OpenXmlElement> = null with get, set
override this.GetEnumerator () =
this._list.GetEnumerator ()
override this.GetItem (index : int) =
this._list.Skip(index).FirstOrDefault ()
new (getList : Delegate1 ) as this =
this._list <- getList ()