Класс 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);

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы