Angenommen, ich habe eine Tabelle namens AppChartGroup und dann mehrere untergeordnete Tabellen, die die Parameter für jeden Diagrammtyp enthalten. So könnte es eine Tabelle mit dem Namen AppBarChart und eine Tabelle namens AppPieChart geben, die je nach Tabelle unterschiedliche Parameter haben. Beide sind über ChartGroupId mit AppChartGroup verknüpft. Das Problem für mich liegt in der C# -Seite der Dinge. Ich möchte eine Liste aller Diagramme erhalten, die von AppChartGroup hängen, unabhängig davon, um welchen Typ es sich handelt. Am min, der einzige Weg, ich weiß, dies zu tun, ist wie folgt:Wie bekomme ich alle Kinder einer Tabelle, ohne ihren Typ zu kennen, zu einer Liste zurückzukehren?
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);
}
Es muss doch ein beredtes will, dies zu tun sein? Etwas entlang der Linien von:
var testChartList = new List<object>();
foreach (var childChart in chartGroup.Children)
{
testChartList.Add(childChart);
}
Aber vermutet, es ist sogar noch einfacher als das, wahrscheinlich eine Zeile von Linq macht den Job, ich bin leider nicht so gut an Linq. Kennt jemand einen effizienteren oder besseren Weg dies zu tun?
bearbeiten
Sehr einfaches Modell.
AppChartGroup
| | |
| | |
BarChart PieChart LineChart
EDIT2
Btw, ich bin mir bewusst, dass das, was ich frage nicht möglich sein kann - ich frage mich, ob es möglich ist, aber wenn Sie nicht denken, Es ist, dann zögere nicht, mir das zu sagen.
können Sie das Chartgroup-Modell zeigen? – CPR43
Was ist die Art von Kindern? Erben sie irgendeine Schnittstelle oder sind sie alle der gleichen Klasse? – Nino
Versuchen Sie etwas wie folgt: Liste charts = chartGroup.Cast () .Wählen Sie (x => x) .ToList(); –
jdweng