想想我一直在看我的代码太多了.
但我的问题是我有一个无序列表,我需要选择具有最高数字的对象接近或等于输入.
我创建了这个小样本来说明我想要做的事情.
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
var persons = new List<Person>
{
new Person {Age = 10, Name = "Aaron"},
new Person {Age = 15, Name = "Alice"},
new Person {Age = 20, Name = "John"},
new Person {Age = 22, Name = "Bob"},
new Person {Age = 24, Name = "Malcom"}
};
int i = 17; //should return 'Alice 15'
int y = 22; //should return 'Bob 22
Run Code Online (Sandbox Code Playgroud)
var person = persons.Where(p => p.Age <= input).OrderByDecending(p => p.Age).First();
Run Code Online (Sandbox Code Playgroud)
这首先排除了大于input(你i或者y)的那些.然后开始对它们进行排序,然后它只取第一个结果.