1
我有一些我在C#类中定义的扩展方法,我可以很好地将它导入到IronPython脚本中。然而,当我尝试调用这些方法之一(“查找”方法):不能在IronPython中使用自定义扩展方法
cmd.SetSpending(galaxy.Mod.Technologies.Find("Propulsion"), 100);
我得到一个错误:“预计谓词[科技],发现海峡”。
我不明白什么是错的 - 扩展方法需要一个IEnumerable作为它的第一个参数(“this”参数),这是galaxy.Mod.Technologies是什么,并且作为它的第二个字符串,这是什么我传递我进口它像这样:
import FrEee;
import FrEee.Utility;
clr.ImportExtensions(FrEee.Utility.Extensions);
其中FrEee.Utility.Extensions是包含CommonExtensions.cs一个命名空间中,它被定义查找方法。
我可以称之为“股票” System.Linq的扩展方法,如单就好:
techs = galaxy.Mod.Technologies;
tech = techs.Single(lambda t: t.Name == "Propulsion");
这样可以完成同样的事情作为我的查找方法,但我真的希望能够使用自定义扩展方法。它们是否仅仅在IronPython中不受支持,或者只是由于某种原因而支持Predicate的扩展方法?
我不认为.NET有自己的Find扩展方法,因为我从来没有在我的C#代码中看到过。我很乐意尝试,虽然... – ekolis
嗯,显然列表确实有一个查找方法! –
ekolis