我如何将GroupedEnumerable转换为IEnumerable <t> </t>

时间:2010-07-07 09:02:57

标签: linq ienumerable

我有一个表达式树项目,与我使用GroupBy语句时的效果很好。对于诸如“Where”和“OrderBy”之类的语句,以下行返回“System.Linq.OrderedEnumerable”

var result = theQueryableSource.Provider.Execute(newExp);

然后,以下行按预期正常工作。

var test = ((IEnumerable<T>) result).GetEnumerator();

如果我使用“GroupBy”语句,第一行代码将返回“System.Linq.GroupedEnumerable”。当第二行运行时,我得到一个例外:

  

无法转换'System.Linq.GroupedEnumerable`3类型的对象[EntityItemInterfaceClassLib。 ReaderEntityItem,System.Nullable`1 [System.Int32],EntityItemInterfaceClassLib。 ReaderEntityItem]'键入'System.Collections.Generic.IEnumerable`1 [EntityItemInterfaceClassLib。 ReaderEntityItem]”。

任何人都可以建议如何将GroupedEnumerable转换为IEnumerable,或解释出现了什么问题?

1 个答案:

答案 0 :(得分:1)

您希望T中的IEnumerable<T>期待什么?

GroupedEnumerable<TSource, TKey, TElement>已经实现了IEnumerable<IGrouping<TKey, TElement>>。在这种情况下,您会尝试将IEnumerable<IGrouping<TKey, TElement>>强制转换为(大概)IEnumerable<TSource>

GroupedEnumerable<TSource, TKey, TElement, TResult>已经实现了IEnumerable<TResult>。在这种情况下,您会尝试将IEnumerable<TResult>强制转换为(大概)IEnumerable<TSource>