2014-02-07 98 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