在c#中,给出以下代码:
public class Person
{
public int PersonID { get; set; }
public int Age { get; set; }
public string Name { get; set; }
}
和
List<Person> people = new List<Person>();
for (int i = 0; i != 15; i++)
{
Person p = new Person();
p.PersonID = i;
p.Age = i * 12;
p.Name = "Name " + i;
people.Add(p);
}
var sortedPeople = from qPeople in people
where qPeople.Age > 0 && qPeople.Age < 25 || qPeople.Age > 100
orderby qPeople.Age descending
select qPeople;
我可以将sortedPeople的结果加载回List&lt; Person&gt;没有循环?
感谢。
答案 0 :(得分:10)
是。有一个.ToList()扩展方法可用,所以你需要做的就是像这样调用它。
var sortedPeople = (from qPeople in people
where qPeople.Age > 0 && qPeople.Age < 25 || qPeople.Age > 100
orderby qPeople.Age descending
select qPeople).ToList();
现在已排序的人将是List<Person>
而不是IOrderedEnumerable<Person>
答案 1 :(得分:4)
答案 2 :(得分:2)
var sortedPeople = (from qPeople in people
where qPeople.Age > 0 && qPeople.Age < 25 || qPeople.Age > 100
orderby qPeople.Age descending
select qPeople).ToList();
答案 3 :(得分:0)
IEnumerable<Person> sortedPeople = from...
固定!
此外:
List<Person> personList = sortedPeople.ToList();
注意,ToList
方法循环结果以生成此列表。