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