C #: ¿Cómo detectar qué valor es igual al cuadro de texto, o el más cercano a cero de un grupo de cuadros de texto / valores?

StackOverflow https://stackoverflow.com/questions/3623066

  •  26-09-2019
  •  | 
  •  

Pregunta

Tengo una gran fórmula de Excel He estado usando pero quiero distribuir algo un poco más sustancial y duradera y también fácil de usar para mi grupo de diseñadores en el trabajo. También estoy tratando con números negativos por desgracia así que van por el valor mínimo no funcionaría.

Así que si TextBox1 dijo 13, dijo TextBox2 4, y TextBox3 dijo -1, cuadro de texto 3 se iluminaba o cualquier acción que elegí llevarse a cabo desde -1 es el más cercano a cero.

No es que realmente ayuda, pero la fórmula de Excel es la siguiente: = INDICE (A61: A78, PARTIDO (MIN (INDICE (ABS (A61: A78), 0,1)), índice (ABS (A61: A78 ), 0,1), 0))

Gracias por cualquier ayuda!

¿Fue útil?

Solución

Aquí está una "diversión con LINQ" método

Func<string, bool> isDecimal = s => { decimal temp; return decimal.TryParse(s, out temp);};
TextBox closestToZero =
    (from tb in this.Controls.OfType<TextBox>()
        where isDecimal(tb.Text)
        orderby Math.Abs(decimal.Parse(tb.Text))
        select tb)
        .FirstOrDefault();

if (closestToZero != null)
    MessageBox.Show(closestToZero.Text);

Otros consejos

iterar sobre los cuadros de texto, calcular el valor absoluto de cada número en cada cuadro, y realizar un seguimiento del número más bajo visto, así como el índice del cuadro de texto se ve en. Intente buscar en Math.Abs() de valor absoluto.

Simplemente podría iterar sobre los cuadros de texto, almacenando el valor mínimo encontrado hasta el momento y su cuadro de texto asociado a medida que avanza.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top