Ich versuche, ein Element in einer Liste von Werten zu finden, die auf einem anderen Wert basieren, wobei ein Lambda-Ausdruck mit der Find-Methode verwendet wird. In diesem Beispiel erwarte ich, -1000 zurückzubekommen, aber für mein Leben kann ich einfach nicht den richtigen Lambda-Ausdruck finden. Wenn das verwirrend klingt, hoffe ich, dass der Code und die Kommentare es besser erklären. TIA.C# Wert in einem Bereich mit Lambda finden
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 lassen Sie mich meine Absichten ein wenig klarer machen, indem Sie alle erwarteten Ergebnisse angeben.
-1000 und weniger auf -101 geben sollte -1000
-100 bis - 11 -100
geben sollte -10 bis -1 geben sollte -10
0 bis 9 0
10 bis 99 geben sollte geben soll 10
100-999 geben soll 100
1000 oder mehr soll 1000
Wenn Sie +200 verwenden, was erwarten Sie? – Darksider
Wenn Sie -100 verwenden, erwarten Sie als Ergebnis -1000 oder -100? –