2016-05-20 36 views
-1
string_builder.Replace("5 star", "FiveStar"); 
hotel_pricesURL = string_builder.ToString(); 
RootobjectOne robjectOne = JsonConvert.DeserializeObject<RootobjectOne>(hotel_pricesURL); 
JavaScriptSerializer json_serializer = new JavaScriptSerializer(); 
List<OneStar> one_star_list = new List<OneStar>(); 
var dmx = robjectOne.onestar; 
var val = robjectOne.onestar; 
var routes_list = json_serializer.DeserializeObject(hotel_pricesURL); 

foreach (var forOne in val) 
{ 

} 
+3

暫時假裝我們無法訪問您的代碼,因此不知道例如實際上是'RootobjectOne'。你認爲我們可以做的不僅僅是指出錯誤信息告訴你 - 無論「val」是什麼,它都不是可枚舉的。如果您確實需要更多幫助,請嘗試構建[mcve] –

+0

此問題已經過了半年。你有沒有找到滿意的答案?如果是的話,請考慮將其中的一個標記爲您的問題的實際答案。 –

回答

1

您試圖在val上執行forloop。 ValrobjectOne.onestar。所以如果onestar沒有實現IEnumerable,那你的運氣不好。

還有什麼用?

var dmx = robjectOne.onestar; 
var val = robjectOne.onestar; 
+0

Hi RvdK!我爲遲到的反應道歉實際上,我通過創建兩個變量而不是一個錯誤,所以我將只使用var val = robjectOne.onestar;實際上使用這個變量的目的是實現一個「foreach」循環 – Mirzan

4

我認爲這個錯誤信息是非常明顯的。問題是你的OneStar沒有自己的GetEnumerator方法。這導致錯誤,因爲foreach不知道如何迭代它。

有趣的是,它並沒有成爲一個IEnumerable對象,它只是暴露的方法:

IEnumerator GetEnumerator() 

作爲的foreach使用枚舉通過集合的元素一一列舉。所以,如果你在你的OneStar類中實現這樣的方法,它將會正常工作。

相關問題