2016-05-22 12 views
0

書き込み中のプログラムの設定は、パイプ記号で区切られた文字列として提供されます。私が作成したコードでは、文字列を名前/値のペアに分割し、変数を作成してその値を割り当てるために長い文のif文を使用してループ内を手動で処理します。簡単な方法がありますか?パイプで区切られた文字列を変数と値に変換する簡単な方法は?

string a = "en=1|ty=1|ns=0|bs=1|rw=0"; //....lots more of these 


string[] b = a.Split('|'); 

foreach (string c in b) 
{ 
     string[] d = c.Split('='); 

     if (d[1] == "en") { string en = d[2]; } 
     if (d[1] == "ty") { string ty = d[2]; } 
     //...on and on and on 
} 
+0

変数の代わりに辞書を使うことができます。 –

+0

あなたは確かに、最初の要素は '1'ですか? –

答えて

1

あなたが本当に個々の変数を処理する必要がある場合を除き、辞書は値を処理するために、より汎用的な方法のようになります。

var valueDictionary = new Dictionary<string,string>(); 
foreach (string a in "en=1|ty=1|ns=0|bs=1|rw=0".split("|")) 
{ 
    string[] b = a.Split('='); 
    valueDictionary[b[0]] = b[1]; //Your example was 1 base but I think it's should be a 0 base 
} 

次にあなたが使用して値にアクセスすることができます。

string enValue = valueDictionary["en"]; 
0

次のコードのような辞書を使用できます。

string a = "en=1|ty=1|ns=0|bs=1|rw=0"; 
var dictionary = new Dictionary<string, string>(); 
a.Split('|').Select(c => c.Split('=')).ToList().ForEach((val) => { dictionary[val[0]] = val[1]; }); 
関連する問題