假設我有一個名爲AppChartGroup的表,然後懸掛了幾個子表,它們包含每種類型圖表的參數。所以可能有一個名爲AppBarChart的表和一個名爲AppPieChart的表,每個表具有不同的參數,具體取決於表。都通過ChartGroupId鏈接到AppChartGroup。對我來說問題在於C#方面。我想獲得掛在AppChartGroup上的所有圖表的列表,不管它們是什麼類型。在分鐘,我知道這樣做的唯一方法是這樣的:如何在不知道類型的情況下獲取表格的所有孩子,並返回列表?
var testChartList = new List<object>();
foreach (var barChart in chartGroup.AppBarChart)
{
testChartList.Add(barChart);
}
foreach (var pieChart in chartGroup.AppPieChart)
{
testChartList.Add(pieChart);
}
foreach (var lineChart in chartGroup.AppLineChart)
{
testChartList.Add(lineChart);
}
當然必須有這樣做的更雄辯想要什麼?沿着線的東西:
var testChartList = new List<object>();
foreach (var childChart in chartGroup.Children)
{
testChartList.Add(childChart);
}
但懷疑這是比更容易,LINQ的可能是一條線做工作,可惜我不是在LINQ太好。有沒有人知道這樣做更有效率或更好的方式?
編輯
非常基本的模型。
AppChartGroup
| | |
| | |
BarChart PieChart LineChart
EDIT2
順便說一句,我知道,我要問是不可能的 - 我只是詢問是否是可能的,但如果你不認爲那麼,請不要猶豫告訴我。
可以顯示chartGroup模式? – CPR43
什麼是孩子的類型?他們是否繼承了一些界面,或者他們都是同一類? – Nino
嘗試類似這樣的:列表 charts = chartGroup.Cast ().Select(x => x).ToList(); –
jdweng