2017-04-27 51 views
-6

如何浮動轉換爲system.Collection.generic.IEnumerable 當我嘗試通過返回的IEnumerable遍歷發生的實際問題。如何浮動轉換爲system.Collection.generic.IEnumerable

Image1

代碼

private ObservableRangeCollection<ReviewInfo> _rating = new ObservableRangeCollection<ReviewInfo>(); 
public ObservableRangeCollection<ReviewInfo> Review 
{ 
     get { return _rating; } 
     set { _rating = value; OnPropertyChanged("AvRating"); } 
    } 

public async Task GetReview() 
    { 
     var ber_id= berProfile.Id; 
     ResponseInfo<ReviewInfo> res = await nsManager.Instance.GetReview(ber_id); 
     Device.BeginInvokeOnMainThread(async() => { 
      IsBusy = false; 
      if (res.IsError == true) 
      { 
       await _page.Alert(res.Message); 
      } 
      else 
      { 
       if (res.Data != null && res.Data.Count > 0) 
       { 
        var temp = res.Data.Average(x => x.Rating); 
        Review.AddRange(temp); 
       } 
      } 
     }); 
    } 
+1

在這裏發佈您的代碼,而不是圖片 – Fabjan

+1

由於您沒有顯示任何代碼,問題相當不清楚。但即使您發佈的屏幕截圖也沒有什麼幫助,因爲它沒有顯示任何涉及的類型。 –

+0

好吧,目前還不清楚應該如何將一個'float'添加到'ReviewInfo'列表中。因爲你沒有提供這個類的代碼,我想你想創建一個新的實例'ReviewInfo',其屬性'Value'或類似的值需要設置爲'res.Data'的平均值 - 但除了你知道的人? – HimBromBeere

回答

1

你提的問題是非常不清楚你didn't提供ReviewInfo是什麼。但是,您的錯誤很明顯:您正嘗試將一個浮點數添加到列表ReviewInfo。當然這不會奏效。

從你的代碼我想這個類至少有一個Rating屬性或字段。假設你有這些ReviewInfo的列表 - 你可能想要檢索那個對象,它的Rating -property是列表中所有元素的平均值。

如果這是你的解決方法是這樣的話:

var temp = res.Data.Average(x => x.Rating); 
Review.Add(res.Data.First(x.Rating == tmp)); 

但是作爲Average返回double它是相當可能的,there's與這一評級的列表正好沒有元素,所以它更好地應用一些寬容。然而,這太過於猜測你真正想要的東西。

+0

HimBromBeere我正在MVVM Review.Add()我工作AddRange – Happy

1

ReviewGogroomCustomer.Models.ReviewInfo的集合,所以你應該從temp通過構造函數創建ReviewInfo對象或通過屬性(例如:reviewInfo)設置,然後使用AddAddRange方法:

Review.Add(reviewInfo); 

Review.AddRange(new ReviewInfo[] { reviewInfo }); 
+0

兄弟這不工作相同的錯誤 – Happy

+0

你的ReviewInfo構造函數在哪裏? –

+0

[Json(「rating」)] public float Rating {get;組; } – Happy