Поиск по определенному или двум и более параметрам в List.Find - C#

Узнай цену своей работы

Формулировка задачи:

Есть структура
Листинг программы
  1. public struct Note
  2. {
  3. //из списка группы
  4. public string firstName; //имя
  5. public string lastName; //фамилия
  6. public ushort score; //успеваемость
  7. }
организована с списке в классе-менеджера работы с записной книжкой
Листинг программы
  1. //класс - работа с блокнотом
  2. public class NoteManager
  3. {
  4. List<Note> note; //записную книжку оформляю через список, обеспечивая тем самым работы с произвольным числом записей
  5. //конструктор
  6. public NoteManager()
  7. {
  8. note = new List<Note>();
  9. note = FillNote.FillNote_(); //заполняю первоначальные поля в записную книжку
  10. }
  11. public void Find()
  12. {
  13. }
  14. //добавление записи в блокнот
  15. public void AddItem()
  16. {
  17. Note addNote = new Note();
  18. Console.Write("Введите имя: ");
  19. addNote.firstName = Console.ReadLine();
  20. Console.Write("Введите фамилию: ");
  21. addNote.lastName = Console.ReadLine();
  22. Console.Write("Введите балл: ");
  23. string stringE = Console.ReadLine();
  24. addNote.score = ushort.Parse(stringE);
  25. note.Add(addNote); //добаляю запись в список
  26. Sort(); //сортирую после добавления(по фамилии)
  27. }
  28. public void DelItem()
  29. {
  30. note.Find()
  31. }
  32. //сортировка записей в блокноте по фамилии
  33. public void Sort()
  34. {
  35. note.Sort((x, y) => x.lastName.CompareTo(y.lastName));
  36. }
  37. //вывод записей блокнота на экран
  38. public void ShowNote()
  39. {
  40. note.ForEach(x => Console.WriteLine("{0}\t{1}\t{2}", x.firstName, x.lastName, x.score)); //Вывод на экран списка записей
  41. }
  42. }
интересует момент как компактнее организовать поиск по разным полям структуры, внеся возможность поиска по нескольким полям одновременно.
Может у кого есть время высказать свои мысли? Я предполагаю, что надо делать дженерик делегат. Но не совсем понимаю как по нескольким параметрам поиск производить

Решение задачи: «Поиск по определенному или двум и более параметрам в List.Find»

textual
Листинг программы
  1. var filtered = note;
  2.  
  3. if (!string.IsNullOrEmpty(fname)) filtered = filtered.Where(x=>x.firstName == fname);
  4. if (!string.IsNullOrEmpty(lname)) filtered = filtered.Where(x=>x.lastName == lname);
  5. filtered = filtered.Where(x=>x.score == score);
  6.  
  7. Console.WriteLine();
  8. filtered.ToList().ForEach(x => Console.WriteLine("{0}\t{1}\t{2}", x.firstName, x.lastName, x.score));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы