2014-02-25 80 views
2

我有一個session對象,其中包含的對象列表的會話對象循環..如何通過這是一個列表

Session.Add("errorlist",errorlist); 

現在我想通過這個errorlist在另一個函數循環。我試過了,但它給了以下錯誤:

foreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator' 

這是我的嘗試:

我可以看到在「錯誤」變量對象的列表。即進入會議

+0

什麼類型'Session'和'error'的? –

+0

'errorlist'的數據類型是什麼?你是如何申明的? – Sachin

回答

7

一切都在默認情況下是System.Object類型。所以你的var聲明將不會有正確的類型。

您需要拉回了會議的時候施放它。

var error = (List<MyObject>)Session["errorlist"]; 

一個更好的辦法是使用一個安全的演員和檢查空:

var error = Session["errorlist"] as List<MyObject>; 

if(error != null){ 
    //Do stuff here 
} 
+1

如果用'foreach'迭代是所有的OP想要做'error',試圖強制轉換爲通用接口IEnumerable的''很可能還是比相當特定類型'名單'更安全一點。 –

+1

@ O.R.Mapper - 同意。除非您計劃使用最通用的界面修改集合總是最好的。 – Josh

+0

謝謝你..它的工作.. – user3014311