C #: Come individuare quale valore casella di testo è uguale o più vicino a zero di un gruppo di caselle di testo / valori?

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

  •  26-09-2019
  •  | 
  •  

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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top