Как обновить список <T>в C #? - PullRequest
1 голос
/ 19 января 2012

Я беру базовый курс по программированию на C #, никогда не программировал ничего раньше. Одним из наших упражнений является создание программы, которая может сдавать в аренду фильмы (например, видеомагазин) с нуля.

Один из моих классов содержит клиентов. Мне нужен метод, при котором пользователь программы может добавлять клиентов в первый список, и отдельный метод, в котором отображаются все клиенты, содержащие вновь добавленных клиентов; или если не добавлено ни одного клиента, то исходные.

Это то, что я сделал до сих пор:

  1. Я создал List<T> для оригинальных клиентов.
  2. Я создал метод, который позволяет добавлять клиентов в первый список и отображать их в ОДНОМ методе.

Проблема в том, что я не знаю, как обновить исходный список клиентов теми, которые добавляет пользователь. Если я вызову весь метод, он, очевидно, (даже для меня ..) вернет весь метод и заставит пользователя снова добавлять клиентов. Я пытался создать два List<T> s, но как мне сделать оригинальное обновление списка, чтобы включить клиентов, которых добавляет пользователь? Мне удалось вызвать первый список из второго, но обратное не работает.

Я пытался, пытался и пытался, но у меня просто кончились идеи! Для меня даже получить это далеко было довольно сложной задачей. Я думал о том, чтобы отказаться от всего этого. Программирование не легкое.

Если у кого-нибудь есть предложения, я был бы очень рад!

namespace MyNameSpace
{
    public class Customers
    {
        public Customers()
        {

        }       

        public string Name
        {
            get;
            set;
        }
        public string Tel
        {
            get;
            set;
        }

        public List<Customers> CustomerList1()     //Original customers                      
        {
            List<Customers> newCustomer = new List<Customers>
            {
               new Customers
               {
                   Name="A",
                   Tel="1"
               },
               new Customers
               {
                   Name="H",
                   Tel="2"
               },     
            };

            return newCustomer;
        }

        public List<Customers> CustomerList2()    //User adds new customers                                  
        {
            List<Customers> custList = CustomerList1();

            Console.WriteLine("---------------------------");
            Console.WriteLine("New Customer");
            Console.WriteLine("---------------------------");
            Console.WriteLine("Name:");
            Console.WriteLine("Tel:");

            List<Customers> addedCustomer = new List<Customers> 
            {
                new Customers               //There is most likely a better way... 
                {
                    Name=Console.ReadLine(),
                    Telephone=Console.ReadLine()
                }          
            };

            custList.AddRange(addedCustomer);

            Console.WriteLine("***************List******************");
            foreach (Customers c in custList)
            {
                Console.WriteLine();
                Console.WriteLine(c.Name);
                Console.WriteLine(c.Tel);
                Console.WriteLine();
            }

            Console.WriteLine("******************************************");

            return addedCustomer;       
        }

        public void CustomerView()  //This method only returns original list
        {                             
            List<Customers> customers = CustomerList1();
            foreach (Customers c in customers)
            {
                Console.WriteLine();
                Console.WriteLine(c.Name);
                Console.WriteLine(c.Tel);
                Console.WriteLine();
            }
            Console.WriteLine("*******************");
        }

        public void CustomerListAdd()          //This is another method I´ve tried to add
        {                                                       customers..
            List<Customers> customers = CustomerList1();   

            Console.WriteLine("");
            Console.WriteLine("---------------------------");
            Console.WriteLine("New Customer");
            Console.WriteLine("---------------------------");

            Customers customerAdd = new Customers();
            Console.WriteLine("Name:");
            customerAdd.Name = Console.ReadLine();
            Console.WriteLine("Tel:");
            customerAdd.Telephone = Console.ReadLine();
            customers.Add(customerAdd);

            Console.WriteLine();

            foreach (Customers c in customers)
            {
                Console.WriteLine();
                Console.WriteLine(c.Name);
                Console.WriteLine(c.Tel);
                Console.WriteLine();
            }
            Console.WriteLine("*******************");
        }
    }   
}

Заранее спасибо

1 Ответ

3 голосов
/ 19 января 2012

Создайте свой класс клиентов:

public class MyClass
{
    // this is outside of a method, but inside the class
    private List<Customer> customers; 

    public MyClass() 
    {
        // instantiate the customer list inside the constructor
        customers = new List<Customer>();  

        // add a default customer to the list by calling the AddCustomer 
        // method in the constructor.
        AddCustomer(new Customer() { Name = "A", Tel="1" });

        // You can also bypass the AddCustomer method below and just call
        // customers.Add() here instead.  If you have other things you want  
        // to do (like insert the customer into a database, for example)
        // you might want to keep the method like I have below.
    }

    public void AddCustomer(Customer cust)
    {
        // add the customer to the existing list.
        customers.Add(cust); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...