.NET 4.x Массивы и коллекции - метод для поиска - C#

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

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

Добрый день! Моя задача : ввод с клавиатуры данных в массив, состоящий из объектов типа Note; записи должны быть упорядочены по датам дней рождения; - вывод на экран информации о человеке, номер телефона которого введен с клавиатуры; если такого нет, выдать соответствующее сообщение. Проблема во втором пункте- добавить метод для поиска по условию, если не найден элемент- сгенерировать исключение. Класс основан на структуре типа ОЛС и я не совсем понимаю, как из готовой записи list (фамилия,имя,телефон,ДР) достать переменную Phone и сравнить с искомой NomPhone. Заранее благодарю за помощь. Наработки:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Console2
{
    public class Note : IComparable<Note>
    {
        public string FName { get; set; }
        public string LName { get; set; }
        public string Phone { get; set; }
        public DateTime Birthday { get; set; }
 
        public Note(string FName, string LName, string Phone, DateTime Birthday)
        {
            this.FName = FName;
            this.LName = LName;
            this.Phone = Phone;
            this.Birthday = Birthday;
        }
 
        // Реализуем интерфейс IComparable<T>
        public int CompareTo(Note obj)
        {
            return Birthday.CompareTo(obj.Birthday);
        }
 
        public override string ToString()
        {
            return FName + " " + LName + " " +Phone+" "+ Birthday.Date;
        }
        /*public int Note (Note obj, string NomPhone)
        {
            int tmp = String.Compare(NomPhone, obj.Phone);
            if (tmp == 0 && String.Compare(NomPhone, obj.Phone) == 0)
                return 0;
            else
                return tmp;
        }*/
        
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            string FName = "", LName = "", Phone = "", Birthday = "";
 
            List<Note> list = new List<Note>();
            Console.Write("Введите количество записей: ");
            int N = Convert.ToInt32(Console.ReadLine());
            //создаем множество записей
            Note[] noteArr = new Note[N];
 
            for (int i = 0; i < N; i++)
            {
                Console.WriteLine("\nВведите {0} запись:", i + 1);
                Console.Write("фамилия: "); FName = Console.ReadLine();
                Console.Write("имя: "); LName = Console.ReadLine();
                Console.Write("телефон: 4 цифры"); Phone = Console.ReadLine();
 
                Console.Write("Введите дату рождения (дд.мм.гггг): ");
                Birthday = Console.ReadLine(); //Console.WriteLine(Birthday); 
                list.Add(new Note(FName, LName, Phone, DateTime.Parse(Birthday)));
            }
            //сортировка записей
            list.Sort();
            Console.WriteLine("Исходные данные записей: \n");
            foreach (Note rec in list)
                Console.WriteLine(rec);
 
            Console.WriteLine("Введите номер телефона интересующего человека: 4 цифры");
            string NomPhone = Console.ReadLine();

            Console.ReadKey();
        }
    }
}

Решение задачи: «.NET 4.x Массивы и коллекции - метод для поиска»

textual
Листинг программы
string NomPhone = Console.ReadLine();
Note noteByPhone=list.FirstOrDefault(x=>x.Phone==NomPhone);
if(noteByPhone!=null)
{
 
}
else
{
  Console.WriteLine("not found");
}

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


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

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

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