【问题标题】:Get items from list by id通过 id 从列表中获取项目
【发布时间】:2014-01-15 05:19:33
【问题描述】:

我在将列表中的项目放入文本框时遇到问题。我在 Visual Studio 中使用 Windows 窗体。

我有一个带有一些文本框的表单,并将输入放到一个列表中。该列表包含客户,用户从其中一个文本框中为客户提供一个 ID。现在我想从列表中获取所有项目到下一个表单。

我有一个公开课的列表:

public class myClassCustomer
{
    public List<customerInformation> cusInformation = new List<customerInformation>();

    public class customerInformation
    {
        public string customerId { get; set; }
        public string phoneNumber { get; set; }
        public string adress { get; set; }
     }

以及在form1中保存输入的代码:

myClassCustomer myClassCustomer = new myClassCustomer()
customers.cusInformation.Add(new myProject.myClassCustomer.customerInformation
{
    customerId = txtCustomerId.Text,
    phoneNumber = txtPhonenumber.Text,
    adress = txtAdress.Text
});

现在在 form2 中,这是我到目前为止所写的:

public form2()
{
    InitializeComponent();
    myClassCustomer myClassCustomer = new myClassCustomer();
}

有谁知道如何从列表中获取所有项目?

【问题讨论】:

  • 您提供了两段看似不同的代码。 Casecs 与我可以看到的 myClassCustomer 没有任何关系...
  • 是的,我复制代码时一定做错了什么。那应该是: myClassCustomer myClassCustomer = new myClassCustomer();
  • ..好的。那么customers 是什么?那也是一堂课?请提供正确的代码。
  • 抱歉我的错误现在已经修复了

标签: c# list get


【解决方案1】:

我假设问题归结为如何“将所有项目从列表中获取到下一个表单”,而不是标题建议“从列表中获取项目”通过 id"。

问题“有人知道如何从列表中获取所有项目吗?”有点重言式,因为列表已经是所有项目。

因此,我将重点回答您关于下一个表单可用的列表项的问题。我认为“客户”本质上只是一个列表,如果不是,您可能应该考虑使用它而不是自制列表类,除非您有非常具体的要求。至少,我希望客户类实现 IEnumerable 接口。

为了使其他表单能够访问您的客户列表,您需要以某种方式提供该信息:例如,您可以更改其他表单的构造函数以要求提供客户列表。然后,当这个原始表单调用第二个表单时,它必须传入它可能已作为参数填充的列表。

还有其他几种方法可以在您的应用程序中传播这些信息,但听起来您只是处于初学者水平,所以上面给出的方法可能是最简单的。

如果这不能回答你的问题,也许你可以澄清一下。

编辑:您自己的一些编辑更改了我评论的代码。现在看来您不是在寻找清单,但建议是一样的;而不是传递一个列表,你只是传递一个 myClassCustomer。

【讨论】:

  • 好的,如何更改其他表单的构造函数以要求列出 om 客户?
  • 例如,假设您的其他表单有一个默认构造函数,可能类似于: > public Otherform() { Initialise();您可以将其更改为: > public OtherForm(List customers) { Initialise(); SomeList = 客户;假设“SomeList”是 OtherForm 类上的一个成员变量,用于存储您所追求的列表。
【解决方案2】:

只需在表单中定义一个公共属性1

public List<customerInformation> AllCustomers 
{
  get { return yourList; }
}

Form1 打开您的Form2 时,请使用以下代码:

Form2 f2 = new Form2();
f2.Show(this);

然后您可以从 Form2 访问您的客户:

var myCustomerList = ((Form1)Owner).AllCustomers;

【讨论】:

  • 谢谢。我真的不明白 AllCustomers 是什么意思?
猜你喜欢
  • 1970-01-01
  • 2017-05-15
  • 2023-04-04
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
相关资源
最近更新 更多