Класс People и два класса-наследника Working и Client: Поиск по части слова - C#
Формулировка задачи:
Здравствуйте.
Имеется базовый класс People и два класса-наследника Working и Client. Далее создал два list с этими объектами Working и Client.
Задача такая-нужно сделать поиск по части отчеству или имени или фамилии, то есть например ввожу кусочек отчества "Васил" и появлялась вся информация о найденном человеке "Заведующий складом Макаров Максим Васильевич".
Я сделал поисковик, но он ищет только по целому введенному слову. Вот мой код.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication5
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<People> list = new List<People>
- {
- new Working { Id = 1, Post = "Директор", Familiya = "Леонтьев", Imya = "Дмитрий", Otchestvo = "Викторович" },
- new Working { Id = 2, Post = "Менеджер", Familiya = "Зайцева", Imya = "Людмила", Otchestvo = "Владимировна" },
- new Working { Id = 3, Post = "Заведующий складом", Familiya = "Макаров", Imya = "Максим", Otchestvo = "Васильевич" },
- new Working { Id = 4, Post = "Продавец-Консультант", Familiya = "Бутко", Imya = "Евгений", Otchestvo = "Дмитриевич" },
- new Working { Id = 5, Post = "Кассир", Familiya = "Мракарян", Imya = "Светлана", Otchestvo = "Дмитриевна" },
- };
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("Рабочие:");
- Console.ResetColor();
- list.ForEach(x =>
- {
- Console.WriteLine("№ " + x.Id + " " + x.Post + " " + x.Familiya + " " + x.Imya + " " + x.Otchestvo + " " + x.Checkout + " \n");
- });
- //foreach (People i in list)
- //{
- // Console.WriteLine(i.Id);
- //}
- List<People> list2 = new List<People>
- {
- new Client { Id = 23, Post = "Покупатель", Familiya = "Шульженко", Imya = "Олег", Otchestvo = "Николаевич", Checkout = "Диск(кол-во 1)" },
- new Client { Id = 24, Post = "Покупатель", Familiya = "Волков", Imya = "Дмитрий", Otchestvo = "Олегович", Checkout = "Диск(кол-во 1)" },
- new Client { Id = 25, Post = "Покупатель", Familiya = "Шульженко", Imya = "Лилия", Otchestvo = "Васильевна", Checkout = "Тетрадь(кол-во 3)" },
- new Client { Id = 26, Post = "Покупатель", Familiya = "Полещук", Imya = "Олег", Otchestvo = "Васильевич", Checkout = "Книга(кол-во 1)" },
- new Client { Id = 27, Post = "Покупатель", Familiya = "Хазарова", Imya = "Инна", Otchestvo = "Николаевна", Checkout = "ручка(кол-во 1)" }
- };
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\nПокупатели:");
- Console.ResetColor();
- list2.ForEach(x =>
- {
- Console.WriteLine("№ " + x.Id + " " + x.Post + " " + x.Familiya + " " + x.Imya + " " + x.Otchestvo + " " + x.Checkout + " \n");
- });
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\nПоиск по Ф/И/О:");
- Console.ResetColor();
- string str = Console.ReadLine();
- var result = list2.Where(s => s.Imya == str || s.Familiya == str || s.Otchestvo == str);
- foreach (var item in result)
- {
- Console.WriteLine(item.ToString());
- }
- Console.Read();
- }
- public class People
- {
- public int Id { get; set; }
- public string Post { get; set; }
- public string Familiya { get; set; }
- public string Imya { get; set; }
- public string Otchestvo { get; set; }
- public string Checkout { get; set; }
- public int Price { get; set; }
- public override string ToString()
- {
- return Familiya;
- }
- }
- public class Working : People
- {
- }
- public class Client : People
- {
- }
- }
- }
Решение задачи: «Класс People и два класса-наследника Working и Client: Поиск по части слова»
textual
Листинг программы
- var result = list2.Select(x => String.Join(" ", x.Imya, x.Familiya, x.Otchestvo)).Where(y => y.Contains(str));
- foreach (var item in result)
- Console.WriteLine(item);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д