从icomparable列表中获取类型

时间:2013-09-10 11:36:46

标签: c# dictionary interface

我有一个<string, IComparable>字典,这意味着该值几乎可以包含任何值类型。

现在,当我更新值时,我想将字符串输入转换为原始类型。我尝试过各种各样的皈依者,但我似乎没有取得任何成功。

实施例          字典val = new Dictionary();     Val.Add(“test”,1);     Val [“test”] =“44”; //这是我尝试转换的地方但它并不总是一个整数。     

因此,如果预先更新该值为int,则将其存储为int。如果它是一个字节,那么它将被存储为一个字节。

任何人都可以指出我正确的方向

由于

2 个答案:

答案 0 :(得分:0)

string id = "type";
val.Add(id, 1);
var type = val[id].getType();
val[id] = System.Convert.ChangeType("44", type);

答案 1 :(得分:0)

假设您知道将要使用的所有数据类型(int,byte等),您可以使用typeof运算符检查之前的类型,然后从您的数据转换为该类型。

if (typeof(Val["test]) == int)
{
    Val["test"] = int.parse("44");
}