2010-01-21 62 views
1

我需要能夠循環周圍未知類型例如foreach所未知類型

foreach (var test in viewData["foobar"]) 
    { 
    } 

任何建議

+1

你有問題嗎? – 2010-01-21 15:07:22

+1

C#我認爲?可能值得告訴你正在開發哪種語言...... – Webleeuw 2010-01-21 15:07:25

回答

4

你必須在你的test變量至少投viewData["foobar"]IEnumerableobject小號。

演員可能會失敗,所以你首先要檢查是否viewData["foobar"]實際實現IEnumerableisas操作:

if(viewData["foobar"] is IEnumerable) 
    foreach(var test in (IEnumerable)viewData["foobar"]) 

注意,這是使用System.Collections.IEnumerable,不System.Collections.Generic.IEnumerable<>

+0

假設這是C#,我們正在討論,當然。 – 2010-01-21 15:10:03

+0

+1簡單直接 – JonH 2010-01-21 15:10:34

+0

計算機[「foobar的」]可能已經是一個IEnumerable如果可視數據的命名索引返回一個類型(衍生)的IEnumerable。 – Webleeuw 2010-01-21 15:13:55

0

如果viewData["foobar"]是類型的對象,那麼你就不能迭代它。迭代foreach循環的唯一方法是IEnumerator派生類型。