Вернуть элемент класса из Dictionary - C#

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

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

Мне нужно проверить, что поле

"FirstName"

типа

string

объекта класса

Contact

будет совпадать с какой-то введённой строкой. Проблема в том, что объекты класса

Contact

находятся в

Dictionary

и

foreach

я использовать не могу. Как мне, не зная ключ к значениям из словаря (объекты

Contact

), узнать равна ли введённая строчка полю каждого из объектов

Dictionary

?

Решение задачи: «Вернуть элемент класса из Dictionary»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication20 {
    class Program {
        static void Main(string[] args) {
            ContactBook contacts = new ContactBook();
            contacts.AddContact(new Contact { Name = "Mary", Phone = "123" });
            contacts.AddContact(new Contact { Name = "Tom", Phone = "342" });
            contacts.AddContact(new Contact { Name = "Ann", Phone = "909" });
 
            Contact c = contacts.GetContact("Mary");
            if (c != null) {
                Console.WriteLine(c);
            }
            Console.ReadLine();
        }
    }
    class Contact {
        public string Name { get; set; }
        public string Phone { get; set; }
        public override string ToString() {
            return string.Format("Name: {0}, Phone: {1}", Name, Phone);
        }
    }
    class ContactBook {
        static int counter = 0;
        Dictionary<int, Contact> contacts = new Dictionary<int, Contact>();
 
        public void AddContact(Contact contact) {
            contacts.Add(counter++, contact);
        }
        public Contact GetContact(string name) {
            return contacts.Values.Where(v => v.Name == name).FirstOrDefault();
        }
    }
}

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


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

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

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