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

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

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

Добрый день! Моя задача : ввод с клавиатуры данных в массив, состоящий из объектов типа Note; записи должны быть упорядочены по датам дней рождения; - вывод на экран информации о человеке, номер телефона которого введен с клавиатуры; если такого нет, выдать соответствующее сообщение. Проблема во втором пункте- добавить метод для поиска по условию, если не найден элемент- сгенерировать исключение. Класс основан на структуре типа ОЛС и я не совсем понимаю, как из готовой записи list (фамилия,имя,телефон,ДР) достать переменную Phone и сравнить с искомой NomPhone. Заранее благодарю за помощь. Наработки:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Console2
  7. {
  8. public class Note : IComparable<Note>
  9. {
  10. public string FName { get; set; }
  11. public string LName { get; set; }
  12. public string Phone { get; set; }
  13. public DateTime Birthday { get; set; }
  14. public Note(string FName, string LName, string Phone, DateTime Birthday)
  15. {
  16. this.FName = FName;
  17. this.LName = LName;
  18. this.Phone = Phone;
  19. this.Birthday = Birthday;
  20. }
  21. // Реализуем интерфейс IComparable<T>
  22. public int CompareTo(Note obj)
  23. {
  24. return Birthday.CompareTo(obj.Birthday);
  25. }
  26. public override string ToString()
  27. {
  28. return FName + " " + LName + " " +Phone+" "+ Birthday.Date;
  29. }
  30. /*public int Note (Note obj, string NomPhone)
  31. {
  32. int tmp = String.Compare(NomPhone, obj.Phone);
  33. if (tmp == 0 && String.Compare(NomPhone, obj.Phone) == 0)
  34. return 0;
  35. else
  36. return tmp;
  37. }*/
  38. }
  39. class Program
  40. {
  41. static void Main(string[] args)
  42. {
  43. string FName = "", LName = "", Phone = "", Birthday = "";
  44. List<Note> list = new List<Note>();
  45. Console.Write("Введите количество записей: ");
  46. int N = Convert.ToInt32(Console.ReadLine());
  47. //создаем множество записей
  48. Note[] noteArr = new Note[N];
  49. for (int i = 0; i < N; i++)
  50. {
  51. Console.WriteLine("\nВведите {0} запись:", i + 1);
  52. Console.Write("фамилия: "); FName = Console.ReadLine();
  53. Console.Write("имя: "); LName = Console.ReadLine();
  54. Console.Write("телефон: 4 цифры"); Phone = Console.ReadLine();
  55. Console.Write("Введите дату рождения (дд.мм.гггг): ");
  56. Birthday = Console.ReadLine(); //Console.WriteLine(Birthday);
  57. list.Add(new Note(FName, LName, Phone, DateTime.Parse(Birthday)));
  58. }
  59. //сортировка записей
  60. list.Sort();
  61. Console.WriteLine("Исходные данные записей: \n");
  62. foreach (Note rec in list)
  63. Console.WriteLine(rec);
  64. Console.WriteLine("Введите номер телефона интересующего человека: 4 цифры");
  65. string NomPhone = Console.ReadLine();
  66.  
  67. Console.ReadKey();
  68. }
  69. }
  70. }

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

textual
Листинг программы
  1. string NomPhone = Console.ReadLine();
  2. Note noteByPhone=list.FirstOrDefault(x=>x.Phone==NomPhone);
  3. if(noteByPhone!=null)
  4. {
  5.  
  6. }
  7. else
  8. {
  9.   Console.WriteLine("not found");
  10. }

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы