Общий список: Добавить, Найти, Удалить C # - PullRequest
0 голосов
/ 06 октября 2018

Как я могу добавить информацию о нескольких клиентах в приложении WPF, используя общий список?

Каждый раз, когда нажимается кнопка «Добавить», я хочу сохранить данные, введенные пользователем в качестве нового клиента, а затем, возможно, отобразить конкретного клиента, введя только номер идентификатора (который был составлен пользователем приввод деталей).

У меня есть этот класс для хранения сведений о клиенте:

public class Customer
{
    private int _customerID;
    private string _name;

    public int ID
    {
        get { return _customerID; }
        set { _customerID = value; }
    }
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
}

Это мой список:

private List<Customer> _list = new List<Customer>();

Это метод добавления:

public void add(Customer newCustomer)
        {
            _list.Add(newCustomer);

        }

И это метод поиска:

public Customer find(int id)
        {
            foreach (Customer c in _list)
            {
                if (id == c.ID)
                {
                    return c;

                }
            }

            return null;

        }

Я не уверен, как реализовать их в моих событиях клика "Добавить" и "Найти"

Пожалуйста, помогите, я очень расстроенс этим и вряд ли есть какие-либо ресурсы в соответствии с общим списком в WPF.

1 Ответ

0 голосов
/ 06 октября 2018

Вы инициализируете новый Customer и пытаетесь найти его с ID, равным 0, так как это значение по умолчанию.Даже если вы найдете один, вы ничего не делаете с customer возвращением методом find.

Вы можете сделать что-то вроде этого:

private void btnFind_Click(object sender, RoutedEventArgs e)
{
    Customer customer = store.find(Int32.Parse(txtID.Text));

    ClearCustomerFields();

    if (customer != null)
    {
        FillCustomerFields(customer);
    }
}

private void ClearCustomerFields()
{
    txtID.Text = "";
    txtName.Text = "";
}

private void FillCustomerFields(Customer customer)
{
    txtID.Text = customer.ID.ToString();
    txtName.Text = customer.Name;
}

Проверить LINQ.Это очень мощный инструмент для взаимодействия с перечисляемыми (подобными списку) типами.Ваш find метод может быть таким:

public Customer find(int id)
{
    return _list.FirstOrDefault(c => c.ID == id);
}
...