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

问题描述

我正在尝试使用 dynamic 变量创建一个类似元组的变量,但我不知道如何。

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

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

mustEncodeDict.Add("test1",(true,3));
mustEncodeDict.Add("test2",3));
mustEncodeDict.Add("test3",3));
mustEncodeDict.Add("test4",(false,3));
mustEncodeDict.Add("test5",3));

我正在尝试使用 dynamic 变量而不是元组,因为我想让代码与 C# 5 兼容,我知道这个原因听起来很愚蠢。

感谢任何帮助。

解决方法

元组数据结构很久以前就存在,所以即使你的目标是 .net Framework 4 (C# 4.0),你也应该很好。

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

说:

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

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

查看您在 https://sharplab.io/ 中的代码,了解幕后发生了什么。

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