2016-05-22 2 views
1

作業に基づいて、アレイに名前を付ける方法です。変数名

foreach (string feature in alpha) 
      { 
       for (int i=0; i < l.Count; i++) 
       { 
        if (l[i] == feature) 
        { 
         string[] ("{0}",feature) = new string[]; 
        } 
       } 
      } 

string[] ("{0}",feature) = new string[];が正しくありません。実行する必要があるのは、条件(l[i] == feature)が一致するたびに、新しい文字列配列をstring[] (whatever string there is in feature) = new string[]として作成することです。

可能ですか?

+0

このようにすることはできません。理由を説明してください。 – weston

+0

さらに詳しい情報が必要ですが、おそらく 'Dictionary >'キーが 'feature' –

+0

@ westonである必要があります。' alpha'は配列で、 'alpha'の各要素はテキストファイル一致が見つかった場合は、新しい配列を作成したいと考えており、一致するすべての部分値をその配列に挿入する必要があります。この操作は 'alpha'の各要素に対して行う必要があります。したがって、 'alpha'のほとんどの要素に対して新しい配列を作成する必要があります。私は配列の命名のこのプロセスを自動化したい。可能? – Jogi

答えて

1

私はあなたが望む辞書があると思います。

var arrays = alpha 
       .Where(a => l.Contains(a)) 
       .ToDictionary(a => a, a => new List<string>()); 

その後1にアクセスするには:

List<string> array = arrays["somefeature"]; 

また配列の使用を中止し、他のコレクション型の上にそれらを選択することはほとんど良い理由はありません。私はListを追加したいと言っていたので使用しました。

+0

ありがとうございます。テーブル形式のデータ、すなわち水平方向と垂直方向を作成するための 'List'の使い方 – Jogi

+0

さて、辞書は、キーは1つの次元で、値はリストです。それで十分でない場合は、別の質問をする必要があります。 – weston

+0

そうです。すべてのガイダンスに感謝します。 – Jogi

1

キー値がフィーチャーになるソート済みリストを使用できます。

 var featureList = new SortedList<string, string[]>(); 

     foreach (string feature in alpha) 
     { 
      var matchingFeatures = new List<string>(); 
      for (int i = 0; i < l.Length; i++) 
      { 
       if (l[i] == feature) 
       { 
        matchingFeatures.Add(l[i]); 
       } 
      } 
      featureList.Add(feature, matchingFeatures.ToArray()); 
     }