我在网上看的例子,Tuple但我没有看到它的任何理想用途.
意思是,它似乎是一个存储变量的地方.
有什么实际用途吗Tuple?我喜欢做的是将值传递给元组,然后让它返回3个值,这些值都是字符串.
小智 11
元组与List相对应.
当List存储相同类型项目的0-N时,Tuple存储1-M个(可能)不同类型的项目,其中N是无界的,M是静态固定/定义的.
这些项目中的每一项都可以通过其名称(或恰好对齐的"索引")以强类型方式访问.
因此它们类似于匿名类型(实际上,这更像是"记录"而不是"元组",因为名称可以任意选择):
new { _0 = value0, _1 = value1, /* etc, as needed */ }
Run Code Online (Sandbox Code Playgroud)
但是元组类型是名义上的类型(它们由一堆不同的类支持,就像Action或Func),因此可以明确指定特定的元组类型(例如,在方法签名中),这是匿名类型不能用于的类型.
虽然我会说,元组的C#中的实际应用是由缺乏支持阻碍(如不分解,不应用程序等),它们被用于所有的时间,比如Scala语言.C#方法通常是"创建一个新的命名类型",但是将Tuple类型作为另一种可用工具引入.
(Tuples非常有用的一个重要地方是中间计算 - 但是C#具有匿名类型,与LINQ一样,在大多数情况下,在同一方法中完成计算时,它可以很好地完成这个角色.)
Microsoft .NET 4.0引入了一种类型,称为Tuple异构类型数据的固定大小集合.像数组一样,元组具有固定大小,一旦创建就无法更改.与数组不同,元组中的每个元素可以是不同的类型,元组能够保证每个元素的强类型.这在方案中非常方便,否则可以使用自定义类型或结构来实现.