Konvertieren einer Binding auf ein Array von T
Frage
Was ist der einfachste Weg, eine BindingList<T>
zu einem T[]
zu konvertieren?
EDIT:. Ich bin auf 3,0 für dieses Projekt, so dass kein LINQ
Lösung
Nun, wenn Sie LINQ (C # 3.0 + entweder .NET 3.5 oder LINQBridge ) Sie können .ToArray()
verwenden -. andernfalls nur ein Array erstellen und die Daten kopieren
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
Andere Tipps
In .Net 2 Sie haben .CopyTo()
Methode auf Ihrem BindingList<T>
verwenden
Ich habe diesen Beitrag verändert, seit ich bemerken, dass Sie dies mit .NET2.0 markiert. Sie könnten eine Liste verwenden, da es eine ToArray () -Methode hat.
public T[] ToArray<T>(BindingList<T> bindingList) {
if (bindingList == null)
return new T[0];
var list = new List<T>(bindingList);
return list.ToArray();
}
Hinweis: Dies ist in der Tat eine weniger performante Lösung als die CopyTo-Lösung, die anderen Mitglieder gezeigt haben. Verwenden Sie ihre Lösung statt, diesmal zwei Arrays, das Ergebnis und eine interne zu der List-Instanz.