比方说,我有这个类:列表中查找与属性的最低值的项目
class Person {
public int ID;
public string Name;
}
然后,我有个人的名单。
List<Person> persons = new List<Person>();
这是充满了大量的随机人。如何查询列表以获取最低ID的人?列表中的对象是随机排列的,因此具有最低ID的人可能不是第一个元素。如果不先排序,我能实现吗?
比方说,我有这个类:列表中查找与属性的最低值的项目
class Person {
public int ID;
public string Name;
}
然后,我有个人的名单。
List<Person> persons = new List<Person>();
这是充满了大量的随机人。如何查询列表以获取最低ID的人?列表中的对象是随机排列的,因此具有最低ID的人可能不是第一个元素。如果不先排序,我能实现吗?
这没有对列表进行排序,只是迭代列表一次。
Person minIdPerson = persons[0];
foreach (var person in persons)
{
if (person.ID < minIdPerson.ID)
minIdPerson = person;
}
您可以使用MinBy
方法从更多的LINQ库:
var person = persons.MinBy(x => x.ID);
如果您不能使用第三方库,你可以先拿到分钟ID,然后获得具有最小ID的人:
var minID = person.Min(x => x.ID);
var person = persons.First(x => x.ID == minID);
这不是没有先排序的列表。 – dotctor 2014-11-05 10:08:26
我没有看到_without ordering_部分。无论如何我删除了orderby解决方案 – 2014-11-05 10:10:49
第二个解决方案迭代列表两次 – dotctor 2014-11-05 10:11:57