Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/03/2015, 00:03
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 10 años
Puntos: 52
Respuesta: Reducir codigo

Lo más corto que se me ocurre es:

Código VB.Net:
Ver original
  1. Private Sub boton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
  2.     Dim count = 20
  3.     Dim numbers = Enumerable.Range(0, count) _
  4.                             .Select(Function(x) CInt(InputBox("Ingrese un numero"))) _
  5.                             .ToArray()
  6.  
  7.     txtCeros.Text = number.Count(Function(x) x = 0)
  8.     txtNegativos.Text = number.Count(Function(x) x < 0)
  9.     txtPositivos.Text = number.Count(Function(x) x > 0)
  10.  
  11. End Sub

Aunque esto es muy poco robusto ya que si el usuario ingresa un texto que no sea numérico va a dar error en tiempo de ejecución al tratar de convertirlo a Integer mediante la función Cint().

Lo más logico sería filtrar de la lista solamente aquellas cadenas de texto que sean convertibles a enteros, usando la funcion IsNumeric() de Visual Basic.Net:

Código VB.Net:
Ver original
  1. Private Sub boton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
  2.     Dim count = 20
  3.     Dim number = Enumerable.Range(0, count) _
  4.                            .Select(Function(x) InputBox("Ingrese un numero")) _
  5.                            .Where(Function(x) IsNumeric(x)) _
  6.                            .Select(Function(x) CInt(x)) _
  7.                            .ToArray()
  8.  
  9.     txtCeros.Text = number.Count(Function(x) x = 0)
  10.     txtNegativos.Text = number.Count(Function(x) x < 0)
  11.     txtPositivos.Text = number.Count(Function(x) x > 0)
  12.  
  13. End Sub

Última edición por agleiva; 19/03/2015 a las 00:20