C# 使用动态变量创建类似元组的变量

C# 使用动态变量创建类似元组的变量,c#,.net,tuples,c#-5.0,C#,.net,Tuples,C# 5.0,我试图使用动态变量创建一个类似元组的变量,但我不知道如何创建 这是我试图使用dynamic变量重新创建的代码 var mustEncodeDict = new Dictionary<string, (bool doubleQ, int maxEnc)>(); mustEncodeDict.Add("test1", (true, 3)); mustEncodeDict.Add("test2", (true, 3)); mustEncodeDic

我试图使用
动态变量创建一个类似元组的变量,但我不知道如何创建

这是我试图使用
dynamic
变量重新创建的代码

var mustEncodeDict = new Dictionary<string, (bool doubleQ, int maxEnc)>();

mustEncodeDict.Add("test1", (true, 3));
mustEncodeDict.Add("test2", (true, 3));
mustEncodeDict.Add("test3", (true, 3));
mustEncodeDict.Add("test4", (false, 3));
mustEncodeDict.Add("test5", (true, 3));
var mustEncodeDict=newdictionary();
mustEncodeDict.Add(“test1”,(true,3));
mustEncodeDict.Add(“test2”,(true,3));
mustEncodeDict.Add(“test3”,(true,3));
mustEncodeDict.Add(“test4”,(false,3));
mustEncodeDict.Add(“test5”,(true,3));
我试图使用
动态
变量而不是元组,因为我想使代码C#5兼容,我知道这个原因听起来很愚蠢


非常感谢您的帮助。

元组数据结构早就存在了,因此即使您的目标是.net Framework 4(C#4.0),您也应该很好

后来只引入了新的nice语法和作为值类型的重新实现

他说:

var mustEncodeDict = new Dictionary<string, Tuple<bool, int>>();
mustEncodeDict.Add("test1", Tuple.Create(true, 3));
var mustEncodeDict=newdictionary();
mustEncodeDict.Add(“test1”,Tuple.Create(true,3));

值元组的名称是编译器构造,它们不是元组的一部分,而是附加到值

查看中的代码以了解幕后发生的情况


如果希望代码在不同的运行时或语言(或语言版本)之间具有互操作性,则应为此创建一个类。

Hi@GetRektBoy724欢迎使用堆栈溢出。也许你可以看看。这是您试图实现的吗?为什么必须使用
动态
?为什么不是一个
struct
?可能类似于
var mustEncodeDict=newdictionary();mustEncodeDict.Add(“test1”,new{doubleQ=true,maxEnc=3});Console.WriteLine(mustEncodeDict[“test1”].doubleQ)
如果您确实想使用
动态
,则不能使用
动态
创建变量。动态
所做的就是将编译延迟到运行时,根据运行时类型而不是编译时类型解析成员名称。所以无论你在这里做什么,
dynamic
都不是前进的道路。thx@Jimi,让我测试一下,我对这一点很感兴趣,我对C#很差劲。thx回答问题,但我用
dynamic
:)