认为这是一个非常基本的问题,但这是我的第一个LINQ查询,我完全陷入困境:
我有一个字符串,其中包含字符串键和列表值(请参阅下面的定义),并希望提取已通过字典键选择列表的特定类型列表的元素.
IDictionary<string, IList<MyBaseType>> dataItemMap;
Run Code Online (Sandbox Code Playgroud)
MySubType扩展MyBaseType的位置.
我的狡猾问题是:
string identCode = "foo";
IEnumerable<MySubType> query =
from entry in dataItemMap
where entry.Key == identCode
select entry.Value.OfType<MySubType>();
Run Code Online (Sandbox Code Playgroud)
和错误消息(来自LinqPad):
Cannot implicitly convert type
'System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<MySubType>>'
to 'System.Collections.Generic.IEnumerable<MySubType>'.
An explicit conversion exists (are you missing a cast?)
Run Code Online (Sandbox Code Playgroud)
问题显然在entry.Value.OfType <>但是如何指定列表元素?我正在寻找像entry.Value.Items.OfType <>这样的东西?
谢谢.
我想你想要这样的东西:
IEnumberable<MySubType> query = dataItemMap[identCode].OfType<MySubType>();
Run Code Online (Sandbox Code Playgroud)
这将获得具有给定键的列表,然后过滤它以仅返回MySubType元素.
| 归档时间: |
|
| 查看次数: |
4618 次 |
| 最近记录: |