2016-12-14 4 views
0

固定サイズNの配列があるとします。要素をN個の変数名のリストにマップする方法はありますか?変数名を配列インデックスにマップする方法

variable1, variable2, variable3 = arrayOfSize3; 

EDIT

私のような何かを考えていた

少数の人々は、これは役に立たないだろうと述べて、私は何か間違ったことをやっていることを示唆しているが。たぶん私はいますが、これは動的言語のかなり一般的な機能なので、C#には何かエレガントなものがあると思っていました。

助けがあれば、私が必要なものを書くことができます。私はHTMLテーブルを解析し、テーブルの行を表す文字列を持っています。データを表す変数を持つ行を表すクラスを作成しましたが、データを格納するために、各配列要素に名前を手動で設定する必要がありました。私はこれを行う他の方法があることを知っていますが、私は何よりも好奇心から、このような変数をマップする正しい方法は何ですか?

+1

あなたは配列の全体のポイントを逃しているように見える... – John3136

+1

私はあなたがこれをしたいと思います理由はわかりません。 – itsme86

+0

私は[これ](http://stackoverflow.com/questions/20857773/create-dynamic-variable-name)はあなたの質問とほぼ同じです、Googleは役に立ちます – shakram02

答えて

0

生産の準備ができていますが、ないあなたは、Visual Studio 15のプレビューが付属していますC#7のプレビューでこれを行うことができます。解体マッチングを使用して、次のコードは、タプル

var (variable1, variable2, variable3) = tupleOfSize3; 

この機能は、実際にこの拡張子を持つことになります。この

public void Deconstruct(out T1 x1, ..., out Tn xn) { ... } 

たぶん、配列のようにデコンストラクタメソッドで何と連携して動作します。を参照してくださいWhat's new in C# 7.0

1

彼らはそのような割り当てはありませんが、あなたは次のように行うことができます。

var variable1 = arrayOfSize3[0]; 
var variable2 = arrayOfSize3[1]; 
var variable3 = arrayOfSize3[2]; 
0

タプルは、それぞれ固有の名前と種類の固定された数値のセットです。一方、配列は、同じ種類の可変長の匿名値の集合です。これらは、集約型の2つの非常に異なる形式であり、実際にはほとんど独立したユースケースに対応しています。

これは、配列を分解することができます(Visual Studio 15プレビューに付属のC#7プレビューで)!あなたは、拡張メソッドとして独自の解体方法を追加することによってそれを行うことができます。

class C 
{ 
    public static void Main() 
    { 
     int[] x = new int[2]; 
     var (a, b) = x; 
    } 
} 

static class ArrayUtilities 
{ 
    public static void Deconstruct(this int[] data, out int a, out int b) 
    { 
     a = data[0]; 
     b = data[1]; 
    } 
} 
関連する問題