Iasyncenumeable of blazor compoents or higher order functions.
TestWithList();
TestWithArray();
void TestWithList()
{
    Table<int> tableInt = new Table<int>();
    Table<string> tableString = new Table<string>();
    List<Table> tableList = [tableInt, tableString]; // 向上轉型成 Table
    ClassifyTables(tableList);
}
void TestWithArray()
{
    Table<int> tableInt = new Table<int>();
    Table<string> tableString = new Table<string>();
    Table[] tableArray = [tableInt, tableString];    // 陣列共變(允許)
    ClassifyTables(tableArray);
}
// 泛型方法;呼叫時由引數型別推斷 T(這裡會推成 Table)
void ClassifyTables<T>(IEnumerable<T> source)
{
	source.Select(item => item switch
	{
		Table<int> tInt => 1,
		Table<string> tStr => 2,
		Table<long> tLong => 3,
		_ => 4
	}).Dump();
}
class Table { }
class Table<T> : Table { }