比方說,我有這個類:列表中查找與屬性的最低值的項目
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