Estoy tratando de encontrar un elemento en una lista de valores basados en otro valor utilizando una expresión lambda utilizando el método Find. En este ejemplo, espero recuperar -1000, pero por mi vida, no puedo encontrar la expresión lamda adecuada. Si eso suena confuso, espero que el código y los comentarios a continuación lo expliquen mejor. TIA.C# Encontrar el valor en un rango utilizando lambda
using System;
using System.Collections.Generic;
namespace TestingStuff {
class Program {
static void Main(string[] args) {
double amount = -200;
//The Range of values
List<MyValue> values = new List<MyValue>();
values.Add(new MyValue(-1000));
values.Add(new MyValue(-100));
values.Add(new MyValue(-10));
values.Add(new MyValue(0));
values.Add(new MyValue(100));
values.Add(new MyValue(1000));
//Find it!!!
MyValue fVal = values.Find(x => (x.Value > amount) && (x.Value < amount));
//Expecting -1000 as a result here since -200 falls between -1000 and -100
//if it were -90 I'd expect -100 since it falls between -100 and 0
if (fVal != null)
Console.WriteLine(fVal.Value);
Console.ReadKey();
}
}
public class MyValue {
public double Value { get; set; }
public MyValue(double value) {
Value = value;
}
}
}
Mmm Permítanme poner mis intenciones un poco más claras al especificar todos los resultados esperados.
-1000 y menos a -101 debe dar -1000
-100 a - 11 debe dar -100
-10 a -1 debe dar -10
0 a 9 deberían dar 0
10 a 99 debe dar 10
100-999 debe dar el 100
1000 o más deben dar 1000
Si usa +200, ¿qué está esperando? – Darksider
Si usa -100, ¿espera que el resultado sea -1000 o -100? –