2013-02-15 101 views
1

型號IEnumerable添加項目?

public class ChartData 
{ 
    public IEnumerable<Series> Series { get; set; } 
    public string[] Categories { get; set; } 
} 

public class Series 
{ 
    // there is another types 
} 

我有兩個數據爲ChartData

// I debugged the following, data is like my expected. 
chartData = HighchartsManager.GetBranchsMeterReadingsChartData(); 
chartDataCustomerAvg = HighchartsManager.GetCustomerAvgChartData(); 

我會再做連接系列這兩個結構像下面

// chartData.Series.Count > 3 
// chartData.Series.Count > 2 
// I want chartData.Series > 5 (3+2), after following line 
chartData.Series.Concat(chartDataCustomerAvg.Series); 

但有超過chartData.Series沒有變化。如何將IEnumerable添加到另一個?

回答

5

如何添加IEnumerable到另一個?

總的來說,你不能。 IEnumerable<T>是一個只讀界面 - 添加它並不總是有意義的。

您可以創建一個連接兩個序列的新的序列,這就是您的代碼當前所做的 - 但它忽略了返回值。所以你可以寫:

var bigSeries = chartData.Series.Concat(chartDataCustomerAvg.Series); 

雖然不會改變chartData.Series本身。 (目前還不清楚你是否真的想這樣做。)

+0

但是我們不知道'chartData.Series.Concat()'方法是否返回任何東西。返回類型也可以是'void'。 – 2013-02-15 13:51:33

+0

沒有什麼可以阻止你將'Concat'的結果分配回'chartData.Series',是嗎? – Rawling 2013-02-15 13:51:59

+0

@Rawling,這仍然取決於設計API的人。它可能並不總是與OP正在嘗試做什麼 – 2013-02-15 13:52:49