[英]Check if a char matches any char in a char array
本質上,我正在嘗試檢查textbox2.Text
包含非整數的任何內容。 這是一種極其低效的方法,但這是我唯一能想到的方法。 有什么我能做的更好的嗎?
char[] ca = textBox2.Text.ToCharArray();
foreach (char c in ca)
{
string s = "1234567890";
char[] ca2 = s.ToCharArray();
if (c != ca2[0] && c != ca2[1] && c != ca2[2] && c != ca2[3] && c != ca2[4] &&
c != ca2[5] && c != ca2[6] && c != ca2[7] && c != ca2[8] && c != ca2[9])
{
MessageBox.Show("Non-integer detected in text box.");
EndInvoke(null);
}
}
int i = int.Parse(textBox2.Text);
從您的代碼開始,有很多錯誤
0123456789
的數組,一旦在循環外就可以完成操作 char.IsDigit
char[] ca = textBox2.Text.ToCharArray();
foreach (char c in ca)
{
if(!char.IsDigit(c))
{
MessageBox.Show("Non-integer detected in text box.");
EndInvoke(null);
}
}
但是您甚至不需要自己執行循環,您可以使用Linq方法來檢查Any
滿足布爾條件的元素
var hasAnyNumbers = textBox2.Text.ToCharArray().Any(char.IsDigit);
但是在那一刻,您正在嘗試將其解析為整數,因此我懷疑您想問的是“如何檢查所有字符是否為整數”-恰恰相反
var isAllNumbers = textBox2.Text.ToCharArray().All(char.IsDigit);
但是,正如其他答案所指出的那樣,有一種方法可以使用int.TryParse
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.