不需要像这样逐一添加m_List
字符串数组中的每个项到destinationList
ListBox 中:
foreach (object name in m_List)
{
destinationList.Items.Add((string)name);
}
有没有更好的方法可以做到这一点?
我不想将数据绑定到destinationList,因为我希望稍后从ListBox中删除一些条目。
不需要像这样逐一添加m_List
字符串数组中的每个项到destinationList
ListBox 中:
foreach (object name in m_List)
{
destinationList.Items.Add((string)name);
}
有没有更好的方法可以做到这一点?
我不想将数据绑定到destinationList,因为我希望稍后从ListBox中删除一些条目。
stringList.ForEach(item => listBox1.Items.Add(item));
HTH:
string[] list = new string[] { "1", "2", "3" };
ObservableCollection<string> oList;
oList = new System.Collections.ObjectModel.ObservableCollection<string>(list);
listBox1.DataContext = oList;
Binding binding = new Binding();
listBox1.SetBinding(ListBox.ItemsSourceProperty, binding);
(listBox1.ItemsSource as ObservableCollection<string>).RemoveAt(0);
好的..如果绑定不是一个选项 - 如果是,我可能会选择这种方式...那么填充列表框更有效的唯一方法就是并行执行。
(为了使其工作,我假设您已安装了.Net 4运行时或PLinq库)
以下代码将在多核机器上显示出巨大的改进,前提是数据集合足够大,以证明初始设置的开销。因此,这仅适用于较大的数组。
Parallel.ForEach(list, r => destinationList.Items.Add(r));
否则我看不出你的foreach循环有什么问题。