2016-10-08 13 views
1

リストの名前で名前を付ける変数の作成に少し問題があります。listValueで名前を付ける変数を作成します。

ここに私が欲しいものがある例があります。

for (int i = 0; i < list.Count; i++) 
{ 
    //here I want to create variable 
    //which will be named with list[i] 
} 

リストに2つの要素がある場合などです。

list[0] = "testName" 
list[1] = "andAnotherOne" 

私は2つの変数、それらの 1を作成したいが、あなたは私がそれを完了する助けることができるテスト名と第二1 andAnotherOne

命名されましたか?

+0

これは、C#でことはできません。あなたの次善策は辞書です。文字列キーで値にアクセスできます。しかし、変数はコンパイルする前に名前を持つ必要があります。 – TaW

+0

Key&Value go for辞書を保存する場合。そうでなければ、これは無意味です。なぜなら、コンパイル後に変数はまったく異なる名前を持つからです。 – CrudaLilium

+1

_コンパイル後、変数の名前はまったく異なります._ Um。なぜなら、単純にそれを書き留めることができないからです。 – TaW

答えて

1

Aを作成するList<string> names = new List<string>();

for (int i = 0; i < 5; i++) 
    { 
     names.Add("sample" + i); 
    } 

EDIT:

あなたは名前で参照したい場合は、私がTAWで言ったようにあなたがDictionaryが必要と考えてい

Dictionary<string, string> myvalues = new Dictionary<string, string>(); 
+2

これはどのように役立ちますか?おそらくディクショナリですが、インデックスだけでなく値に名前を関連させたいと考えています。 – TaW

+0

2番目の部分はリスト[0]とリスト[1]の値が – Sajeetharan

+0

いいえ、名前として... – TaW

1

、以下のような辞書を使用しています。これにより、インデックスと同じ値を持つことができます。

Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
dictionary.Add("foo","foo"); //index,value of index 
if(dictionary.ContainsKey["foo"]) 
{ 
    string value = dictionary["foo"]; 
    Console.Write(value); 
} 

私はあなたの質問を理解したいと思います。

+0

ですが、なぜ彼のリストを使用しないのですか? - ) – TaW

+0

私はこれに新しいです、質問に答える礼儀がありますか?申し訳ありませんが存在する場合。また、私は彼が何を求めているかを完全に理解していません。だから私は一般的な例を行った – FakeCaleb

+0

あなたの答えは上質です。私はちょうど彼があなたがエントリを作成するために使用することができる名前のリストを持つコードを投稿したので、意味しました.. – TaW

0

C#では、変数はすべて静的に宣言されています。私はあなたがそれをすることはできないと思う。多分あなたは反射を試すことができますが、私はあなたが望むことをすることができないと思います。

私はそれがあなたに興味ができたいくつかのもの:

string to variable name

Convert string to variable name

1

あなたがdynamicExpandoObjectを使用することができます。

var variables = new List<string> { "variableOne", "variableTwo" }; 

dynamic scope = new ExpandoObject(); 

var dictionary = (IDictionary<string, object>)scope; 

foreach (var variable in variables) 
    dictionary.Add(variable, "initial variable value"); 

Console.WriteLine(scope.variableOne); 
Console.WriteLine(scope.variableTwo); 
関連する問題