Класс People и два класса-наследника Working и Client: Поиск по части слова - C#

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

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

Здравствуйте. Имеется базовый класс People и два класса-наследника Working и Client. Далее создал два list с этими объектами Working и Client. Задача такая-нужно сделать поиск по части отчеству или имени или фамилии, то есть например ввожу кусочек отчества "Васил" и появлялась вся информация о найденном человеке "Заведующий складом Макаров Максим Васильевич". Я сделал поисковик, но он ищет только по целому введенному слову. Вот мой код.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication5
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. List<People> list = new List<People>
  13. {
  14. new Working { Id = 1, Post = "Директор", Familiya = "Леонтьев", Imya = "Дмитрий", Otchestvo = "Викторович" },
  15. new Working { Id = 2, Post = "Менеджер", Familiya = "Зайцева", Imya = "Людмила", Otchestvo = "Владимировна" },
  16. new Working { Id = 3, Post = "Заведующий складом", Familiya = "Макаров", Imya = "Максим", Otchestvo = "Васильевич" },
  17. new Working { Id = 4, Post = "Продавец-Консультант", Familiya = "Бутко", Imya = "Евгений", Otchestvo = "Дмитриевич" },
  18. new Working { Id = 5, Post = "Кассир", Familiya = "Мракарян", Imya = "Светлана", Otchestvo = "Дмитриевна" },
  19. };
  20. Console.ForegroundColor = ConsoleColor.Red;
  21. Console.WriteLine("Рабочие:");
  22. Console.ResetColor();
  23. list.ForEach(x =>
  24. {
  25. Console.WriteLine("№ " + x.Id + " " + x.Post + " " + x.Familiya + " " + x.Imya + " " + x.Otchestvo + " " + x.Checkout + " \n");
  26. });
  27. //foreach (People i in list)
  28. //{
  29. // Console.WriteLine(i.Id);
  30. //}
  31. List<People> list2 = new List<People>
  32. {
  33. new Client { Id = 23, Post = "Покупатель", Familiya = "Шульженко", Imya = "Олег", Otchestvo = "Николаевич", Checkout = "Диск(кол-во 1)" },
  34. new Client { Id = 24, Post = "Покупатель", Familiya = "Волков", Imya = "Дмитрий", Otchestvo = "Олегович", Checkout = "Диск(кол-во 1)" },
  35. new Client { Id = 25, Post = "Покупатель", Familiya = "Шульженко", Imya = "Лилия", Otchestvo = "Васильевна", Checkout = "Тетрадь(кол-во 3)" },
  36. new Client { Id = 26, Post = "Покупатель", Familiya = "Полещук", Imya = "Олег", Otchestvo = "Васильевич", Checkout = "Книга(кол-во 1)" },
  37. new Client { Id = 27, Post = "Покупатель", Familiya = "Хазарова", Imya = "Инна", Otchestvo = "Николаевна", Checkout = "ручка(кол-во 1)" }
  38. };
  39. Console.ForegroundColor = ConsoleColor.Red;
  40. Console.WriteLine("\nПокупатели:");
  41. Console.ResetColor();
  42. list2.ForEach(x =>
  43. {
  44. Console.WriteLine("№ " + x.Id + " " + x.Post + " " + x.Familiya + " " + x.Imya + " " + x.Otchestvo + " " + x.Checkout + " \n");
  45. });
  46. Console.ForegroundColor = ConsoleColor.Red;
  47. Console.WriteLine("\nПоиск по Ф/И/О:");
  48. Console.ResetColor();
  49. string str = Console.ReadLine();
  50. var result = list2.Where(s => s.Imya == str || s.Familiya == str || s.Otchestvo == str);
  51. foreach (var item in result)
  52. {
  53. Console.WriteLine(item.ToString());
  54. }
  55. Console.Read();
  56. }
  57. public class People
  58. {
  59. public int Id { get; set; }
  60. public string Post { get; set; }
  61. public string Familiya { get; set; }
  62. public string Imya { get; set; }
  63. public string Otchestvo { get; set; }
  64. public string Checkout { get; set; }
  65. public int Price { get; set; }
  66. public override string ToString()
  67. {
  68. return Familiya;
  69. }
  70. }
  71. public class Working : People
  72. {
  73. }
  74. public class Client : People
  75. {
  76. }
  77. }
  78. }

Решение задачи: «Класс People и два класса-наследника Working и Client: Поиск по части слова»

textual
Листинг программы
  1. var result = list2.Select(x => String.Join(" ", x.Imya, x.Familiya, x.Otchestvo)).Where(y => y.Contains(str));
  2.             foreach (var item in result)
  3.                 Console.WriteLine(item);

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


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

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

10   голосов , оценка 4.1 из 5

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

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

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