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, item => item.Instance); |
在这种情况下,第二个例子更容易使用。本质上,如果您想要做的只是生成一个字典,那么您不会从 linq 查询中获得任何值来获取