在c#中将一种类型转换为另一种类型

时间:2018-01-08 06:04:18

标签: c# dictionary

我尝试将值添加到字典中。但我遇到了铸造问题。 这是我的示例代码。

public class Column
{
    public string Name
    {
        get;
        set;
    }
}

public class Table: Dictionary<string, Column>
{
}

SortedDictionary<string, Table> tableSc = new SortedDictionary<string, Table>();
foreach (var table in item.Tables)
                {
                    Dictionary<string, Column> col = new Dictionary<string, Column>();
                    foreach (var column in table.Fields)
                    {
                        Column value = new Column();
                        value.Name = column.Id;
                        col.Add(column.Id, value);
                    }
                    tableSc.Add(table.Id, (Table)col);
                }

将表类型值添加到tableSc字典时,我遇到了以下异常。

(tableSc.Add(table.Id, (Table)col);)

  

无法将'System.Collections.Generic.Dictionary`2 [System.String,Column]'类型的对象强制转换为   输入'表'。

有谁能建议我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

更改声明变量col

的方式
Table col = new Table(); // or another construtor

您的班级Table继承自Dictionary,因此您无法将Dictionary的对象投射到其子级别。