2014-02-07 101 views
0

我有一个代码在文本框中捕捉奇数偶数,有没有在最小代码中这样做的更好的方法?或者更快的性能? thnks -John :)奇数和偶数位

   string givenamnt = Convert.ToString(txtamount.Amount.Replace(".", "")); 
       int glength = givenamnt.Length; 
       var regex = new Regex("[1]|[3]|[5]|[7]|[9]"); 

       string odd = null; 
       string even = null; 

       for (int i = 0; i < glength; i++) 
       { 
       var x1 = givenamnt.Substring(i, 1); 
       var isOdd = regex.IsMatch(x1); 

       if (isOdd) 
       { 
       odd += x1; 
       txtodd1.Text = odd; 
       } 
       else 
       { 
       even += x1; 
       txteven1.Text = even; 
       } 
       } 
+1

你是第一个使用正则表达式来查找我曾经见过的奇数和偶数的人:) –

+0

是的,但我不知道它是否快:) –

回答

0

绝对不是一个完美的解决方案,但要获得实际的偶数和奇数数字您可以使用此:

string str = "230sd85"; // sample string with invalid input for numbers 
    var odd = str 
      .Where(x => char.IsDigit(x) 
       && Convert.ToInt32(x) % 2 != 0); 

    var even = str 
      .Where(x => char.IsDigit(x) 
       && Convert.ToInt32(x) % 2 == 0); 

    string oddNums = string.Join("", odd); // 35 - the numbers 3 and 5, not 35 
    string evenNums = string.Join("", even); // 208 - the numbers 2, 0 and 8 

这是你所说的数字吗?

+0

pcnThird - 我只在我的文本框中键入数字,但WOW这个逻辑是好的,如果我输入无效,那么它将被忽略! :) –

4

Yes.You可以使用Modulus

if(Convert.ToInt32(x1) % 2 == 0) //even 
else // odd 
+0

'谢谢谢尔曼我会试试:) –

+1

for(var x = 0; x