【发布时间】:2011-07-05 07:46:20
【问题描述】:
将数组转换为 BindingList 的最简单、最快的方法是什么?
【问题讨论】:
标签: c# type-conversion bindinglist
将数组转换为 BindingList 的最简单、最快的方法是什么?
【问题讨论】:
标签: c# type-conversion bindinglist
您正在寻找constructor:
var bl = new BindingList<YourClass>(arr);
【讨论】:
你可以试试 foreach 循环:
public void AppenFromArray(T[] aSource)
{
if (aSource == null) { return; }
foreach (T el in aSource)
{
this.Add(el);
}
}
【讨论】:
使用采用IList<T> 的BindingList 构造函数。
var binding = new BindingList<MyType>(myArray);
【讨论】:
在使用带有 Array 的 BindingList(IList ..) 构造函数时要小心,因为 IList 将是只读的。
因此,任何从 BindingList 添加/删除的尝试都会引发 NotSupportedException,因为 IList 无法处理该功能,因为 Collection 是只读的。
要创建可编辑的 BindingList,您必须在使用 IList 构造函数之前将其转换为列表。
关于为什么数组是从 IList 构建的一个很好的描述可以在这里找到一些额外的阅读: Why array implements IList?
【讨论】: