WCF REST’s Extention to IEnumerable Lambda Func<TSource, TKey> keySelector
我正在使用 WCF REST Preview 2 来测试一些 REST 服务。该包具有对 IEnumerable 的扩展为 ToDictionary(Func(TSource, TKey) keySelctor。不确定如何定义 lambda 函数以返回 keySelector?
这是一个例子:
1
2 3 4 |
var items = from x in entity.Instances // a customized Entity class with list instances of MyClass
select new { x.Name, x}; Dictionary<string, MyClass> dic = items.ToDictionary<string, MyClass>( (x, y) => … // what should be here. I tried x.Name, x all not working |
不确定返回 KeySelector 的 lambda Func 应该是什么?
由于 items 是
1
|
items.ToDictionary(x => x.Name)
|
你甚至可以做到:
1
|
entity.Instances.ToDictionary(x => x.Name)
|
你不需要指定类型参数,因为它们可以被正确推断。
编辑:
在这种情况下,假设你可以这样做:
1
2 3 4 5 6 7 |
var items = from instance in entity.Instances select new { Name = instance.Name, // don’t have to specify name as the parameter Instance = instance }; var dict = items.ToDictionary(item => item.Name, |
在这种情况下,第二个例子更容易使用。本质上,如果您想要做的只是生成一个字典,那么您不会从 linq 查询中获得任何值来获取
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269606.html