Próbuję znaleźć element na liście wartości na podstawie innej wartości, używając wyrażenia lambda za pomocą metody Znajdź. W tym przykładzie spodziewam się odzyskać -1000, ale dla mojego życia po prostu nie mogę wymyślić właściwej ekspresji lamda. Jeśli to brzmi myląco, mam nadzieję, że kod i komentarze poniżej wyjaśnią to lepiej. TIA.C# Znajdź wartość w zakresie używając 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 powiem moje intencje trochę wyraźniejsze, określając wszystkie oczekiwane rezultaty.
-1000 do -101 i mniej powinny -1000
-100 do - 11 powinny -100
-10 do -1 powinny -10
0 do 9 powinny 0
10 99 powinno dać 10
100-999 powinien dać 100
1000 lub więcej powinny dać 1000
Jeśli używasz +200, czego się spodziewasz? – Darksider
Jeśli używasz -100, czy oczekujesz -1000 lub -100? –