2010-07-07 28 views
1

我有一個表達式樹項目,它與我在使用GroupBy語句時的作用很好。對於語句,如「去哪兒」和「排序依據」下面一行返回「System.Linq.OrderedEnumerable」如何將GroupedEnumerable轉換爲IEnumerable <T>

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

你認爲T在你的IEnumerable<T>

GroupedEnumerable<TSource, TKey, TElement>實施IEnumerable<IGrouping<TKey, TElement>>已經。在這種情況下,您將嘗試將IEnumerable<IGrouping<TKey, TElement>>轉換回(假定)IEnumerable<TSource>

GroupedEnumerable<TSource, TKey, TElement, TResult> Implemented IEnumerable<TResult> already。在這種情況下,您將嘗試將IEnumerable<TResult>重新投射回(假定)IEnumerable<TSource>

相關問題