Класс 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д