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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top