2011-11-20 4 views
7

Tupleからアイテムを取得するには、ItemXプロパティにアクセスします。 タプルを読みやすくするために、各項目に名前を付ける方法はありますか?Tupleアイテムに意味のある名前を付ける方法はありますか?

コード:

Dim l As New Tuple(Of String, Integer) 
l.Name 
l.ID 

の代わりに::

はこのような何かを探してい

Dim l As New Tuple(Of String, Integer) 
l.Item1 
l.Item2 

答えて

7

いいえ、何もここであなたを助けタプル型ではありません。オプション:

  • 複数の方法で値を渡す必要がある場合は、適切なプロパティを持つ独自の型を作成します。あなたが唯一の方法内の値が必要な場合anonymous typeを使用し、
  • (あなたがあなたが本当にしたい場合は、ここTupleから派生し、ちょうどItem1Item2にどのデリゲートのプロパティを提供しますが、私は希望わからないでした)
1

タプルの拡張メソッドをいくつか書くことができます。最初の要素を返す最初のメソッドと、2番目の要素以降のサブプールを返すRestがあります。それは一般的なの簡単なソリューションです。

First carとRest cdrを呼び出すと、たくさんの人がとても幸せになれるでしょう。http://en.wikipedia.org/wiki/CAR_and_CDR

3

C#7バージョンでは、タプル値にわかりやすい名前を付ける機能があります。 注:コンパイルされていないコードはここに直接入力してください。

例えば将来の潜在的な読者に

(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}"); 
+3

注:この答えはC#7がリリースされる前に投稿されました。したがって、正確な構文は変更される可能性があります。 (個人的には、私はこれを投稿する前に待っていただろう) – sstan

関連する問題