Создаю программу "Банкомат". Возник вопрос - как сделать чтобы пользователь ввел свой ид, и сразу показало его счет и фио класс банкомат
class Bankomat
{
public const string Adress = "Эльменя 6, код банкомата 465422";
public int BankCash { get; set; }
public int Id { get; set; }
public int Cash { get; set; }
public string Name { get; set; }
public Bankomat(int id, int cash, string name)
{
Id = id;
Cash = cash;
Name = name;
}
Основная программа
static void Main(string[] args)
{
Bankomat Vanya = new Bankomat(146251, 1500, "Петров Иван Иванович");
Bankomat Alex = new Bankomat(146252, 3400, "Сергеев Александр Сергеевич");
Bankomat Petya = new Bankomat(146253, 710, "Леонтьев Петр Евгеньевич");
Console.Write("Введите ваш id пожалуйста: ");
int id = Convert.ToInt32(Console.ReadLine());
if ((id == Vanya.Id)||(id == Alex.Id) ||(id == Petya.Id))
{
}
Console.ReadKey();
Если ид принадлежит Ване, то выдать только данные Вани.
ps. не предлагать
if (id == Vanya.Id)
{
Console.Write("{Vanya.Id} {Vanya.Name} {Vanya.Cash}");
}else if(id == Alex.Id){
Console.Write("{Alex.Id} {Alex.Name} {Alex.Cash}");
}
не хочу много условных конструкций, т.к. если будет много пользователей, то код тупо засрется
Как вариант с Коллекцией:
static void Main(string[] args)
{
List<Bankomat> BankKollection = new List<Bankomat>();
BankKollection.Add(new Bankomat(146251, 1500, "Петров Иван Иванович"));
BankKollection.Add(new Bankomat(146252, 3400, "Сергеев Александр Сергеевич"));
BankKollection.Add(new Bankomat(146253, 710, "Леонтьев Петр Евгеньевич"));
Console.Write("Введите ваш id пожалуйста: ");
int id = Convert.ToInt32(Console.ReadLine());
foreach (Bankomat bank in BankKollection)
{
if (bank.Id == id)
{
Console.WriteLine("ФИО : {0}, Счет : {1}, ID : {2}",bank.Name, bank.Cash, bank.Id);
}
}
Console.ReadKey();
}
Или, как советует @iksuy со словарем :
static void Main(string[] args)
{
Dictionary<int, Bankomat> BankKollection = new Dictionary<int, Bankomat>();
BankKollection.Add(1, new Bankomat(1, 1500, "Петров Иван Иванович"));
BankKollection.Add(2, new Bankomat(2, 3400, "Сергеев Александр Сергеевич"));
BankKollection.Add(3, new Bankomat(3, 710, "Леонтьев Петр Евгеньевич"));
Console.Write("Введите ваш id пожалуйста: ");
int id = Convert.ToInt32(Console.ReadLine());
if (BankKollection.Keys.Contains(id))
{
Console.WriteLine("ФИО : {0}, Счет : {1}, ID : {2}", BankKollection[id].Name, BankKollection[id].Cash, BankKollection[id].Id);
}
Console.ReadKey();
}
Выбирайте любой - дело вкуса.
UPD
По совету уважаемого @Alex Krass foreach
можно заменить на
Console.WriteLine(BankKollection.Where(p => p.Key == id).Select(p => p.Value.Id + " " + p.Value.Name + " " + p.Value.Cash).FirstOrDefault());
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, подскажите пожалуйста, как запретить повторное открытие страницы tabPage1, через buttonТ
На данный вопрос уже ответили:
В итоге создаётся лишь 1000 (чуть больше)Почему?