Поиск по листу по всем параметрам - C#

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

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

допустим по параметру сравнить
clients.FindAll(x => x.Surname == (string)obj);
А если мне надо по всем полям класса сравнить?? как то не хочется писать в лямбда выражении большую долгую строчку которая б 9 параметров бы сравневала. почему кстати нельзя использовать расширенную версию лямбда выражения
realtys.FindAll(x => { });
я бы туда поместил что то типа этого
PropertyInfo[] properties = this.GetType().GetProperties();
foreach (PropertyInfo propertyInfo in properties)
{
    string stringValue = propertyInfo.GetValue().ToString();
    // ...
}
Ввобщем задание такое, поиск по ключевому слову в листе обьектов. Тоесть мне по всем параметрам каждого обьекта надо пробежатся и сравнить. Что то типа того что самый первый пример в теме. Но для всех параметров. Параметры там типа стринг и инт.

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

textual
Листинг программы
        class Client 
        {
            public String Name { get; set; }
            public int Age { get; set; }
 
            public Client(string name, int age)
            {
                Name = name;
                Age = age;
            }
 
            public string Description()
            {
                var sb = new StringBuilder();
                PropertyInfo[] properties = this.GetType().GetProperties();
                foreach (PropertyInfo propertyInfo in properties)
                {
                    sb.Append(propertyInfo.GetValue(this));
                    sb.Append(" ");
                }
 
                return sb.ToString();
            }
        }
 
        public static void Main(string[] args)
        {
            List<Client> clients = new List<Client>();
            clients.Add(new Client("Vasya", 36));
            clients.Add(new Client("Misha", 12));
            clients.Add(new Client("Oleg", 32));
 
            clients = clients.Where(c => c.Description().IndexOf("12") != -1).ToList();
 
            foreach (var client in clients)
            {
                Console.WriteLine(client);
            }
        }

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


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

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

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