C #: Come individuare quale valore casella di testo è uguale o più vicino a zero di un gruppo di caselle di testo / valori?
Domanda
Ho una grande formula di Excel Ho utilizzato ma voglio distribuire qualcosa di un po 'più consistente e resistente e anche facile da usare per il mio gruppo di designer al lavoro. Sono anche a che fare con i numeri negativi, purtroppo, in modo da andare dal valore minimo non avrebbe funzionato.
Quindi, se textbox1 detto 13, TextBox2 detta 4, e TextBox3 detto -1, casella di testo 3 si accende o qualsiasi azione ho scelto essere effettuata poiché -1 è più vicino a zero.
Non che aiuta veramente, ma la formula di excel va in questo modo: = INDEX (A61: A78, MATCH (MIN (INDEX (ABS (A61: A78), 0,1)), INDEX (ABS (A61: A78 ), 0,1), 0))
Grazie per qualsiasi aiuto!
Soluzione
Ecco un "divertimento con LINQ" metodo
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);
Altri suggerimenti
iterare le caselle di testo, calcolare il valore assoluto di ogni numero in ogni casella, e tenere traccia del numero più basso visto, così come l'indice della casella di testo è stato visto in. Prova a guardare in Math.Abs()
per il valore assoluto.
Si potrebbe semplicemente iterare sulle caselle di testo, memorizzazione del valore minimo trovato finora e il suo testo associato, come si va.