问题描述
我正在尝试使用 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/ 中的代码,了解幕后发生了什么。
如果您希望您的代码在不同的运行时或语言(或语言版本)之间可以互操作,您应该为此创建一个类。