2013-02-15 71 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