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
添加到另一个?
答
如何添加IEnumerable到另一个?
总的来说,你不能。 IEnumerable<T>
是一个只读界面 - 添加它并不总是有意义的。
您可以创建一个连接两个序列的新的序列,这就是您的代码当前所做的 - 但它忽略了返回值。所以你可以写:
var bigSeries = chartData.Series.Concat(chartDataCustomerAvg.Series);
虽然不会改变chartData.Series
本身。 (目前还不清楚你是否真的想这样做。)
但是我们不知道'chartData.Series.Concat()'方法是否返回任何东西。返回类型也可以是'void'。 – 2013-02-15 13:51:33
没有什么可以阻止你将'Concat'的结果分配回'chartData.Series',是吗? – Rawling 2013-02-15 13:51:59
@Rawling,这仍然取决于设计API的人。它可能并不总是与OP正在尝试做什么 – 2013-02-15 13:52:49