Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以变量作为值的字典_C#_Variables_Dictionary - Fatal编程技术网

C# 以变量作为值的字典

C# 以变量作为值的字典,c#,variables,dictionary,C#,Variables,Dictionary,可能重复: 我有一些高度耦合的代码,我正试图去耦合。如果我能编一本这样的字典: Dictionary<string, var> dict = new Dictionary<string, var> Dictionary dict=新字典 许多联轴器可以固定。另一个帖子中的一个帖子似乎找到了一个使用变量类的解决方案,但他/她没有发布这个类的任何细节,我想不出怎么做 编辑: 基本上,不是: string transit = <string value>;

可能重复:

我有一些高度耦合的代码,我正试图去耦合。如果我能编一本这样的字典:

Dictionary<string, var> dict = new Dictionary<string, var>
Dictionary dict=新字典
许多联轴器可以固定。另一个帖子中的一个帖子似乎找到了一个使用变量类的解决方案,但他/她没有发布这个类的任何细节,我想不出怎么做

编辑:

基本上,不是:

string transit = <string value>;
string transit=;
我希望能够写:

string dict["Transit"] = <string value>;
string dict[“Transit”]=;
我已经做了以下工作:

Dictionary<string, var> dict = new Dictionary<string, var>()
{
    {"Transit", transit}
};
Dictionary dict=new Dictionary()
{
{“过境”,过境}
};
这可能是不可能的,但任何建议都将不胜感激


尊敬。

我想您甚至想在字典中添加IEnumerable、IQueryable变量。 对象类是超类,可以存储任何内容,也可以转换为任何内容

var myVar = new { name="john",lastname="smith"}; // or any linq expression
Dictionary<string, Object> asd = new Dictionary<string, object>();
asd.Add("mykey", myVar);
var myVar=new{name=“john”,lastname=“smith”};//或任何linq表达式
字典asd=新字典();
asd.添加(“mykey”,myVar);

我假设您甚至想将IEnumerable、IQueryable变量添加到字典中。 对象类是超类,可以存储任何内容,也可以转换为任何内容

var myVar = new { name="john",lastname="smith"}; // or any linq expression
Dictionary<string, Object> asd = new Dictionary<string, object>();
asd.Add("mykey", myVar);
var myVar=new{name=“john”,lastname=“smith”};//或任何linq表达式
字典asd=新字典();
asd.添加(“mykey”,myVar);

这将实现以下目的:

public class Variable
{
    public object Value { get; set; }
}
然后他可以做他要求的事情,即:

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

dict["Transit"].Value = "transit"
Dictionary dict=new Dictionary()
{
{“Transit”,新变量()}
}
dict[“Transit”]。Value=“Transit”

这将实现以下目的:

public class Variable
{
    public object Value { get; set; }
}
然后他可以做他要求的事情,即:

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

dict["Transit"].Value = "transit"
Dictionary dict=new Dictionary()
{
{“Transit”,新变量()}
}
dict[“Transit”]。Value=“Transit”

很难在没有看到您想要解耦的代码的情况下给您一个建设性的答案-您提出了一个解决方案,而不是给我们问题并让我们提出解决方案。老实说,很难说您到底在问什么..不清楚。看起来您希望通过引用存储某些内容,但我们需要更多的上下文。我认为您首先误解了var关键字。var只是一个声明性快捷方式。如果您不知道所存储的值的类型,请使用object,并了解您必须强制转换返回值,装箱可能是一个性能问题(在极端情况下)。在这种情况下,dmck的答案是完全正确的。这是你的另一个问题的重复帖子吗?在没有看到你想要解耦的代码的情况下,很难给你一个建设性的答案-你提出了一个解决方案,而不是给我们问题并让我们提出解决方案。老实说,很难说你到底在问什么……不清楚。看起来您希望通过引用存储某些内容,但我们需要更多的上下文。我认为您首先误解了var关键字。var只是一个声明性快捷方式。如果您不知道所存储的值的类型,请使用object,并了解您必须强制转换返回值,装箱可能是一个性能问题(在极端情况下)。在这种情况下,dmck的答案是完全正确的。这是你另一个问题的重复帖子吗?谢谢你的回答(你是对的,我认为它更复杂),谢谢你的支持。让我感到不安的是,他们没有留下任何评论。我的意思是,这是一个论坛,如果你不能有建设性的话,你在这里做什么?谢谢你的回答(你是对的,我认为它更复杂),谢谢你的支持。让我感到不安的是,他们没有留下任何评论。我的意思是,这是一个论坛,如果你不能建设性的在这里做什么?