【发布时间】:2013-11-29 17:51:35
【问题描述】:
(将Dictionary 转换为ILookup 不是很好:
How do I convert a Dictionary to a Lookup?)
我想使用以下方法为我的容器类创建一个接口:
ILookup<Type, Entry> Query ( IEnumerable<QueryClause> query );
每个查询子句都指定应从底层容器中取出哪些特殊类型的条目以及应取出多少(以及更多细节)。
我的实现目前看起来像这样:
var result = new Dictionary<Type, List<Entry>>();
foreach(var clause in query)
{
var clauseResult = FulfillClause(clause);
result.Add(clause.Type, clauseResult);
}
return result.ToLookup(); // here it is
这个方法有没有机会我直接返回ILookup?不幸的是它不支持yield return。
【问题讨论】:
-
您的代码似乎没有使用
yield return,因此很难看出这有什么关系……而且您还没有告诉我们任何有关query或FulfillClause的信息。 -
我想替换结果。但是,添加行与收益返回,这是不可能的,因为 C# 不支持 ILookup 的收益返回(仅 IEnumerable)
标签: c# linq dictionary lookup yield-return