# Поиск, сортировка ("Университет")
## Поиск
```
```
```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace University
{
public partial class MainWindow : Window
{
private List students;
private string searchFilter = "";
private bool sortAsc = true;
public MainWindow()
{
InitializeComponent();
// Инициализируем список студентов
InitializeData();
// Отображаем всех студентов в listview
UpdateStudentList(students);
}
private void SearchFilter_KeyUp(object sender, KeyEventArgs e)
{
searchFilter = SearchFilterTextBox.Text;
Invalidate();
}
private void Invalidate()
{
throw new NotImplementedException();
}
private void InitializeData()
{
// Создаем список студентов
students = new List
{
new Student { Name = "Джейк Ли", Course = 1, Nationality = "Китаец", Age = 19 },
new Student { Name = "Ариадна Санчес", Course = 2, Nationality = "Испанец", Age = 20 },
new Student { Name = "Эдвард Каллен", Course = 1, Nationality = "Американец", Age = 20 },
new Student { Name = "Эндрю Уилсон", Course = 3, Nationality = "Американец", Age = 21 },
new Student { Name = "Хэй Вэнь", Course = 3, Nationality = "Китаец", Age = 22 },
new Student { Name = "Семен Хомяк", Course = 4, Nationality = "Русский", Age = 23 },
};
}
private void FilterComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
List filteredStudents = new List();
// Фильтруем список студентов по выбранному критерию
UpdateStudentList(filteredStudents);
}
private void UpdateStudentList(List studentsToDisplay)
{
StudentListView.ItemsSource = studentsToDisplay;
}
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
sortAsc = (sender as RadioButton).Tag.ToString() == "1";
InvalidateVisual(); // Исправлено имя метода
}
private void SortByAgeButton_Click(object sender, RoutedEventArgs e)
{
// Сортируем список студентов по возрасту
List sortedStudents = students.OrderBy(student => student.Age).ToList();
// Если нужно отсортировать по убыванию, разворачиваем список
if (!sortAsc)
{
sortedStudents.Reverse();
}
// Обновляем список студентов в ListView
UpdateStudentList(sortedStudents);
}
private IEnumerable FilteredStudentList
{
get
{
// сохраняем во временную переменную полный список
var res = students;
return res;
}
}
}
class Student
{
public string Name { get; set; }
public int Course { get; set; }
public string Nationality { get; set; }
public int Age { get; set; }
}
}
```
![](./img/Снимок%20экрана%202024-04-29%20083601.png)