有没有办法为元组项目提供有意义的名称?

Mic*_*elS 7 .net vb.net

从a中检索项目Tuple是通过访问该ItemX属性来完成的.有没有一种方法来命名每个项目,以便使用元组将更具可读性?

码:

寻找这样的东西:

Dim l As New Tuple(Of String, Integer)
l.Name
l.ID
Run Code Online (Sandbox Code Playgroud)

代替:

Dim l As New Tuple(Of String, Integer)
l.Item1
l.Item2
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

不,元组类型中没有任何内容可以帮助你解决这个问题.选项:

  • 如果需要在多个方法中传递值,请使用适当的属性创建自己的类型.(你可以派生自Tuple这里,如果你真的想要,只是提供的属性,它们委托Item1Item2,但我不知道我会)
  • 如果您只需要一个方法中的值,请使用匿名类型


Ven*_*ndi 5

在C#7版本中,我们具有为Tuple Values提供友好名称的功能.注意:只需直接输入此处未编译的代码即可.

例如

(int Latitude, int Longitude, string city) GetPlace()
{
    return(20,30,"New York");    
}

var geoLocation = GetPlace();
WriteLine($"Latitude :{geoLocation.Latitude}, Longitude:{geoLocation.Longitude}, City:{geoLocation.city}");
Run Code Online (Sandbox Code Playgroud)

  • 潜在的未来读者请注意:这个答案是在C#7发布之前发布的.所以确切的语法仍然可以改变.(就个人而言,我会在发布之前等待) (3认同)