字典与变量作为值

时间:2012-08-17 15:56:32

标签: c# variables dictionary

  

可能重复:
  Dictionary With Value “Variable”

我有一些高度耦合的代码,我试图解耦。如果我能像这样制作一个词典:

Dictionary<string, var> dict = new Dictionary<string, var>

可以修复很多耦合。另一个帖子中的一张海报似乎找到了一个使用Variable类的解决方案,但是他/她没有发布这个类的任何细节,我想不出怎么做。

编辑:

基本上,而不是:

string transit = <string value>;

我希望能够写下:

string dict["Transit"] = <string value>;

我已经完成的任务:

Dictionary<string, var> dict = new Dictionary<string, var>()
{
    {"Transit", transit}
};

这可能是不可能的,但任何建议都表示赞赏。

问候。

2 个答案:

答案 0 :(得分:3)

这样可以解决问题:

public class Variable
{
    public object Value { get; set; }
}

然后他可以做他所要求的,即:

Dictionary<string, Variable> dict = new Dictionary<string, Variable>()
{
    {"Transit", new Variable()}
}

dict["Transit"].Value = "transit"

答案 1 :(得分:0)

我假设您想要将IEnumerable,IQueryable变量添加到您的字典中。 Object类是超类,可以存储任何东西,可以转换为任何东西。

var myVar = new { name="john",lastname="smith"}; // or any linq expression
Dictionary<string, Object> asd = new Dictionary<string, object>();
asd.Add("mykey", myVar);