Tôi đang cố gắng tìm một mục trong danh sách giá trị dựa trên giá trị khác sử dụng biểu thức lambda bằng cách sử dụng phương thức Tìm. Trong ví dụ này, tôi mong đợi để lấy lại -1000, nhưng đối với cuộc sống của tôi, tôi không thể đưa ra biểu thức chính xác của lamda. Nếu điều đó có vẻ khó hiểu, tôi hy vọng mã và nhận xét dưới đây sẽ giải thích rõ hơn. TIA.C# Tìm giá trị trong phạm vi sử dụng 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 cho phép tôi đặt ý định rõ ràng hơn bằng cách chỉ định tất cả kết quả mong đợi.
-1000 và ít hơn để -101 nên cung cấp cho -1000
-100 đến - 11 nên cung cấp -100
-10 -1 nên cung cấp cho -10
0-9 nên cung cấp cho 0
10-99 nên cung cấp cho 10
100-999 nên cung cấp cho 100
1000 hoặc hơn nên cung cấp cho 1000
Nếu bạn sử dụng +200, bạn mong đợi điều gì? – Darksider
Nếu bạn sử dụng -100, bạn có mong đợi -1000 hoặc -100 như là kết quả không? –