C# 如何将列表中的数据插入列表框?
我已经创建了一个名为C# 如何将列表中的数据插入列表框?,c#,winforms,listbox,C#,Winforms,Listbox,我已经创建了一个名为employees的列表,我想将该列表中的所有信息输入表单上的列表框中 我不敢相信我已经忘记了这一点,我环顾四周,找不到任何简明的信息,我有一本学习手册,但他们使用文本框而不是列表框,并且他们只处理数组和简单的数据类型 List<Employee> employees = new List<Employee>(); 我已经创建了一个List 然后我将其添加到表单的列表框中 lstFree.Items.Add(employees); 但它只显示为“收
employees
的列表,我想将该列表中的所有信息输入表单上的列表框中
我不敢相信我已经忘记了这一点,我环顾四周,找不到任何简明的信息,我有一本学习手册,但他们使用文本框而不是列表框
,并且他们只处理数组和简单的数据类型
List<Employee> employees = new List<Employee>();
我已经创建了一个List
然后我将其添加到表单的列表框中
lstFree.Items.Add(employees);
但它只显示为“收藏”
我做错了什么?方法需要一个类实例。当您将集合传递给它时,它将调用ToString()
,最后您将看到集合的完整类名。不是你想要的
List<Employee> employees = new List<Employee>();
Employee employee1 = new Employee(1111, "Name", "Skill Set");
Employee employee2 = new Employee(2222, "Name", "Skill Set");
employees.Add(employee1);
employees.Add(employee2);
foreach(var empl in employees)
{
listBox1.Items.Add(empl.ToString());
}
相反,您可以使用循环:
foreach (var emp in employees)
lstFree.Items.Add(emp);
或者只将其分配给数据源
:
listBox1.DataSource = employees;
您还需要告诉它要向用户显示的属性(以及可选的,要用作基础值的属性):
Add
方法需要一个类实例。当您将集合传递给它时,它将调用ToString()
,最后您将看到集合的完整类名。不是你想要的
相反,您可以使用循环:
foreach (var emp in employees)
lstFree.Items.Add(emp);
或者只将其分配给数据源
:
listBox1.DataSource = employees;
您还需要告诉它要向用户显示的属性(以及可选的,要用作基础值的属性):
考虑使用AddRange
object[] arr = Enumerable.Range(1, 10000).Select(i=>(object)i).ToArray();
比较一下这个时间
// 1,29s
foreach (int i in arr)
{
listBox1.Items.Add(i);
}
对此
// 0,12s
listBox1.Items.AddRange(arr);
考虑使用AddRange
object[] arr = Enumerable.Range(1, 10000).Select(i=>(object)i).ToArray();
比较一下这个时间
// 1,29s
foreach (int i in arr)
{
listBox1.Items.Add(i);
}
对此
// 0,12s
listBox1.Items.AddRange(arr);
我一直在寻找更高效的代码,我感谢你帮助我发展我自己的技能。我一直在寻找更高效的代码,我感谢你帮助我发展我自己的技能。那么有没有办法让员工加入。添加(xxxx)
进入循环,因此它会根据列表中的实例数量自动添加它们
是只需替换列表框1.Items.Add(emp.ToString())代码>带有列表框1.Items.Add(新员工(2222,“姓名”,“技能集”).ToString()
。那么有没有一种方法可以将员工。添加(xxxx)
到一个循环中,这样它会根据列表中有多少实例自动添加员工
Yes只需替换listBox1.Items.Add(empl.ToString())代码>带有列表框1.Items.Add(新员工(2222,“姓名”,“技能集”).ToString()代码>。虽然您的评论很有帮助,而且可能是最合适的,但我无法让数据源在我的GUI表单上工作,它崩溃了或是其他什么,所以很不幸,我不得不将最佳答案交给另一个人,但我还是投票给了您。谢谢。虽然你的评论很有帮助,而且可能是最合适的,但我无法让数据源在我的GUI表单上工作,它崩溃了或是其他什么,所以很不幸,我不得不把最好的答案交给另一个人,但我还是投了你一票。谢谢