在某些语言(例如PHP,Haskell或Scala)中,您可以以类似于以下伪代码的方式从元组分配多个变量:
list(string value1, string value2) = tupleWithTwoValues;
Run Code Online (Sandbox Code Playgroud)
我找不到在C#中执行此操作的方法,但是,如果不写更长,更丑陋的代码:
string firstValue = tupleWithTwoValues.Item1;
string secondValue = tupleWithTwoValues.Item2;
Run Code Online (Sandbox Code Playgroud)
这个双线解决方案显然不是世界末日,但我一直在寻找编写更漂亮代码的方法.
有谁知道更好的方法吗?
shm*_*mup 12
现在可以在C#7中使用它:
public (string first, string last) FullName()
{
return ("Rince", "Wind");
}
(var first, var last) = FullName();
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用单个var声明:
var (first, last) = FullName();
Run Code Online (Sandbox Code Playgroud)
更多关于官方文档中的元组解构.
有效至C#6:
不,这是不可能的。C#中没有这种语言功能。
如果您认为以下代码:
string firstValue = tupleWithTwoValues.Item1;
string secondValue = tupleWithTwoValues.Item2;
Run Code Online (Sandbox Code Playgroud)
很难看,那么您首先应该重新考虑使用元组。
更新:从C#7开始,元组解构现在成为可能。请参阅文档以获取更多信息。
参见贾里德的答案。
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |