2015-10-06 144 views
2

編輯:沒關係。下面的示例是從舊版VB代碼轉換而來的C#編寫的,這些代碼具有相同名稱的結構和類對。所以下面的「KooClass」實際上是一個結構,而KooArray返回了類類的數組。InvalidCastException從非常簡單的linq查詢

想刪除這個問題,但沒有看到這樣的選項。

============================================== ==== 第一個查詢工作正常。第二個linq拋出InvalidCastException異常。

this.HooArray是一個返回HooStruct數組的屬性。同樣,KooArray是一個返回KooClass數組的屬性。

我已經通過獲取這兩個數組屬性,他們沒有問題返回。

正如你可以猜出的名字,HooStruct是一個結構,KooClass是一個類。

這是怎麼回事?

 var goo = (from Foo.Goo.HooStruct g in this.HooArray 
        select g).ToList(); 

     var foo = (from Foo.Goo.KooClass g in this.KooArray 
        select gt).ToList(); 
+6

什麼是 「GT」 的對象?應該是g? – Cory

+1

我們需要看到KooArray和KooClass的聲明能夠給你任何具體的信息。 – bvoyelr

回答

2

看起來KooArray包含不KooClass對象

+0

如果解決方案不那麼簡單,那麼使用舊式編程(不使用linq)重新編寫代碼,並希望解決方案將變得明顯 – Joe

+0

這就是這麼簡單,或者更簡單......我也做了同樣的錯誤的工作與這個代碼的VB版本(和VS自動完成感到困惑),然後在一段時間內沒有看到它。 – Greylander

+0

感謝您花時間關閉此問題。 – Joe