我试图使用Find方法使用lambda表达式在基于另一个值的值列表中查找项目。在这个例子中,我期待回到-1000,但对于我的生活,我不能拿出适当的lamda表达。如果这听起来令人困惑,我希望下面的代码和评论能更好地解释它。 TIA。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;
}
}
}
嗯,让我通过指定所有预期的结果使我的意图更清晰一点。
-1000,少到-101应该给-1000
-100〜 - 11应该给-100
-10至-1应该给-10
0到9应该给0
10〜99应该给10
100-999应给予100
1000或更多的应该得到1000个
如果你使用+200,你期待什么? – Darksider 2010-05-21 11:35:33
如果您使用-100,那么您是否期望-1000或-100? – 2010-05-21 11:50:02