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