2016-04-04 5 views
0

私はプリンタのリストを持つドロップダウンリストを持っています。drowdownlist.SelectedItem.Textから最初の3桁を取得したいのですが、その理由はアイテムの回転コードを計算する必要があるためです。string.Substringコマンドが機能しない

これはコードです:デバッグ中

string[] plantname = Printerlist.SelectedItem.Text.Split('-'); 
string plantvalue = plantname[0].ToString(); 
if (plantvalue.Substring(0,3).ToLower() == "abk"){ 
    rotation_plant = "9"; 
} 
else if (plantvalue.Substring(0, 3).ToLower() == "cor") 
{ 
    rotation_plant = "3"; 
} 
else if (plantvalue.Substring(0, 3).ToLower() == "iok") 
{ 
    rotation_plant = "0"; 
} 
else if (plantvalue.Substring(0, 3).ToLower() == "moc") 
{ 
    rotation_plant = "6"; 
} 
else if (plantvalue.Substring(0, 3).ToLower() == "tes") 
{ 
    rotation_plant = "1"; 
} 

私はplantvalue参照: plantvalue

のが、上記のサブは "TES" と等しくなければならないが、: it is not

私がしました私はアプリケーションを閉じて再オープンしましたが、それでもまだ動作していませんでした。もし誰かが同様の問題に直面していたら、どうすればそれを手伝ってくださいましたか?あなたのケースで...

+0

簡単な提案 - 'plantvalue.Substring(0,3).ToLower()'を理解してデバッグしやすくするため、独自の変数にプルします。 –

+0

ポイント以外にも、私のパフォーマンスOCDがトリガーされます。なぜあなたは 'Substring'と' ToLower'の操作を繰り返すのですか? –

+1

@BrianRasmussenはい、パフォーマンスは1つですが、コードは 'switch(plantvalue.Substring(0,3).ToLower()){case" abk ":/ * ... */} '、私の意見では。 –

答えて

0

まあ、サブストリング方法、デバッガでは2

にインデックス0からチャートを持って新しい文字列を返す、あなたはまだplantvalueをチェック変数であり、サブストリングメソッドの結果ではありません。 すなわち、新しい変数に部分文字列を入れてみてください:

string lowerThreeLetters = plantvalue.Substring(0, 3).ToLower(); 

この方法で、あなたはlowerThreeLetters変数の上にマウスを移動して、デバッグ中3つの最初の文字を見ることができるようになり、また、計算を行いますサブストリングの1回だけであり、if文ごとではありません。

関連する問題