В 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 назад в Список <Человек> без цикла?
Спасибо.
Да. Доступен метод расширения .ToList (), поэтому все, что вам нужно сделать, это вызвать его следующим образом.
var sortedPeople = (from qPeople in people
where qPeople.Age > 0 && qPeople.Age < 25 || qPeople.Age > 100
orderby qPeople.Age descending
select qPeople).ToList();
Теперь sortedPeople будет иметь вид List
вместо IOrderedEnumerable
Вы можете использовать
sortedPeople.ToList()
Создает список из IEnumerable.
IEnumerable<Person> sortedPeople = from...
Исправлено!
Также:
List<Person> personList = sortedPeople.ToList();
Обратите внимание, что метод ToList
перебирает результаты для создания этого списка.
var sortedPeople = (from qPeople in people
where qPeople.Age > 0 && qPeople.Age < 25 || qPeople.Age > 100
orderby qPeople.Age descending
select qPeople).ToList();