我正在使用VB .Net進行此操作,因此我無權訪問var
或者這將是一件簡單的事情。確定要用來存儲Linq查詢對象的類型
現在我的查詢如下
Dim errors As IOrderedQueryable(Of IGrouping(Of String, RSError)) = (From e In db.RSErrors
Where e.UserID = "msarchet"
Group e By e.Type Into t = Group).AsEnumerable
所以我用這個LinqPad查詢可以幫助我確定對象將是什麼樣子。我找回了一個IOrderQueryable(Of RSError)
,其中包含一個IGrouping(Of String, RSError)
,用於查詢返回的每個分組對象。
但是,我最終以當前對象類型errors
爲IOrderedQueryable(Of IGrouping(Of String, RSError))
,因爲我在VS中遇到了轉換錯誤。
無法轉換類型的對象「System.Data.Linq.DataQuery
1[VB$AnonymousType_1
2 [System.String,System.Collections.Generic.IEnumerable1[RSSAdmin2.RSError]]]' to type 'System.Linq.IOrderedQueryable
1 [System.Linq.IGrouping2[System.String,RSSAdmin2.RSError]]'.
我不知道如何擺脫返回對象的VB $ AnonymousType_1部分。
我是否在正確的軌道上,或者我完全錯過了某些東西?
我能做到它隱含着......嘆了口氣,這是我在需要顯式聲明的條件下工作所得到的。 – msarchet 2010-07-03 16:52:43
是的我明白隱式聲明做什麼,它的工作原理,謝謝你啓動我的星期六大腦 – msarchet 2010-07-03 16:55:38
不,它不會創建'Object'類型。這在VB9中發生了變化,它實際上會創建表達式返回的特定類型,就像C#3中的'var'關鍵字一樣。 – Guffa 2010-07-03 16:56:43