[C#] 在Dictionary中使用各種不同類型的物件

  • 1221
  • 0

在Dictionary中使用各種不同類型的物件

以前沒有特別在意,
最近有人問到這個問題,
才找個時間研究,
他的需求是在Dictionary的Value中需要放入各種不同類型的物件.

首先我們先建立兩種類別的物件(類別的內容不重要)

AWSReportData data1 = new AWSReportData();
data1.adGroupId = 2;
data1.adGroupName = "隨意";

CGamePrizeData data2 = new CGamePrizeData(EGameType.BIG_LOTTERY);
data2.num_01 = 1;
data2.num_02 = 2;

然後建立一個Dictionary並且加入物件

Dictionary<string, object> list = new Dictionary<string, object>();
list.Add("測試1", data1);
list.Add("測試2", data2);

之後取出物件

object obj1 = list["測試1"];

之後我們要判斷物件的類型,
方便做進一步的處理,
判斷類型的方式不只一種,
下面實驗了兩種方式都可以正常使用

第1種:

if(obj1 is AWSReportData)
{
    AWSReportData data = (AWSReportData)obj1;
}

第2種:

Type type = obj1.GetType();
switch(type.Name)
{
    case "AWSReportData":
        AWSReportData data = (AWSReportData)obj1;
        break;
}