元组真正的用途是什么?

Emb*_*rja 4 c#-4.0

有人可以解释一下元组真正的用途吗?

Jon*_*eet 9

您可以将元组视为有点像匿名类型,但没有名称 - 并且能够指定返回类型等.当您需要特殊的多值数据类型但希望能够将其指定为方法的返回类型.

例如,int.TryParse 可能有一个签名

static Tuple<int, bool> TryParse(string text)
Run Code Online (Sandbox Code Playgroud)

基本上你想要返回一个int和一个bool.现有签名使用一个out参数来解决只能返回单个值的事实 - 元组是另一种选择.同样KeyValuePair<TKey, TValue>基本上只是一对价值观.

我个人想看到另一种选择:一种简洁的方式来实现匿名类型的语义(不变性,命名属性,平等等),但有一个名称.