What's the easiest way to convert a BindingList<T>
to a T[]
?
EDIT: I'm on 3.0 for this project, so no LINQ.
What's the easiest way to convert a BindingList<T>
to a T[]
?
EDIT: I'm on 3.0 for this project, so no LINQ.
Well, if you have LINQ (C# 3.0 + either .NET 3.5 or LINQBridge) you can use .ToArray()
- otherwise, just create an array and copy the data.
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
I've changed this post since I noticed you tagged this with .net2.0. You could use a List since it has an ToArray() method.
public T[] ToArray<T>(BindingList<T> bindingList) {
if (bindingList == null)
return new T[0];
var list = new List<T>(bindingList);
return list.ToArray();
}
Note: This is indeed a less performant solution than the CopyTo solution that other members have shown. Use their solution instead, this one creates two arrays, the result and one internal to the List instance.