2016-04-04 19 views
0

Bir yazıcı listesini içeren bir açılır listeye sahibim, ilk üç rakamı drowdownlist.SelectedItem.Text'dan almak istiyorum, bunun sebebi, bir öğenin döndürme kodunu hesaplamam gerekmesi. hata ayıklamastring.Substring komutu çalışmıyor

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"; 
} 

Ben plantvalue bkz: "tes" eşit olmalıdır plantvalue

ancak yukarıda sonuna kadar olan alt ama: it is not

yaptım

Bu

kodudur yeniden inşa ettim, uygulamayı kapattım ve tekrar açtım ama hala çalışmıyor, eğer böyle bir sorunla karşılaşmış olsaydınız nasıl yardımcı olursanız olun lütfen yardım edin. ...

+0

Hızlı öneri - Anlamak ve hata ayıklamayı kolaylaştırmak için plantvalue.Substring (0,3) .ToLower() işlevini kendi değişkenine çekerim. –

+0

Bunun yanı sıra, performansım OKB'yi tetikliyor. Neden "Substring" ve "ToLower" işlemlerini tekrarlıyorsunuz? –

+1

@BrianRasmussen Evet, performans bir şeydir, ancak kod da daha basit ve okunabilir olabilir 'switch (plantvalue.Substring (0,3) .ToLower()) {case" abk ":/* ... */Benim görüşüme göre. –

cevap

0

Eh, Alt dize yöntem, senin durumunda, 2.

ayıklayıcıya In endeksi 0 dan çizelgeleri olacak yeni bir dize döndürür, yine plantvalue kontrol değişken ve Substring yönteminin sonucu değil. yani yeni değişkende alt dizeyi koyarak deneyin:

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

Bu şekilde, aynı zamanda lowerThreeLetters üzerinde değişkeni gelerek hata ayıklama 3 ilk harflerini görmek mümkün olacak ve, hesaplamalar yapacak Substring sadece bir kez, ve her if deyimi için değil.