C# 在F中访问动态对象#
我正在参数化一些linq查询,最后使用了动态linq。起初,我在从它创建的动态对象中提取数据时遇到了一些困难,但我设法使用FSharp提取了数据。InteropDynamic,关于参数化linq查询的更好方法,我计划发布另一个问题。 我的问题是C# 在F中访问动态对象#,c#,linq,f#,dynamic-language-runtime,C#,Linq,F#,Dynamic Language Runtime,我正在参数化一些linq查询,最后使用了动态linq。起初,我在从它创建的动态对象中提取数据时遇到了一些困难,但我设法使用FSharp提取了数据。InteropDynamic,关于参数化linq查询的更好方法,我计划发布另一个问题。 我的问题是 这是访问动态linq和/或动态对象(内存和速度方面)的最佳方式吗 当我第一次使用它时,FSI给了我一个信息 将会话绑定到“..\..\packages\dynametiy.1.0.2.0\lib\net40\dynametiy.dll”… 这到底是什么
将会话绑定到“..\..\packages\dynametiy.1.0.2.0\lib\net40\dynametiy.dll”…
#if INTERACTIVE
#r "System.Data.Linq.dll"
#r @"..\packages\System.Linq.Dynamic.1.0.6\lib\net4\System.Linq.Dynamic.dll"
#r @"..\packages\FSharp.Interop.Dynamic.3.0.0.0\lib\portable-net45+sl50+win\FSharp.Interop.Dynamic.dll"
#r @"..\packages\Dynamitey.1.0.2.0\lib\net40\Dynamitey.dll"
#endif
open System.Linq
open System.Linq.Dynamic
open FSharp.Interop.Dynamic
type Rec1 = {
City:string
Country:string
Zip:int
}
let x = [{City="London";Country="UK";Zip=1029};{City="Glasgow";Country="UK";Zip=30921};
{City="London";Country="USA";Zip=90210}]
let y = x.Where(fun x -> x.City ="London").Select("new(City,Zip)")
[for xx in y -> (xx?City:string),(xx?Zip:int)]
这将给我:valit:(string*int)list=[(“伦敦”,1029);(“伦敦”,90210)]
如预期的那样
这是使用F#中的动态对象的一个很好的概述:
还有一个关于不同方法的问题: