Vra

Wat is die maklikste manier om te omskep in'n BindingList<T> om'n T[] ?

EDIT:Ek is op 3.0 vir hierdie projek, so geen LINQ.

Was dit nuttig?

Oplossing

Wel, as jy het LINQ (C# 3.0 + óf .NETTO 3.5 of LINQBridge) jy kan gebruik .ToArray() - anders, net die skep van'n skikking en'n afskrif van die data.

T[] arr = new T[list.Count];
list.CopyTo(arr, 0);

Ander wenke

In Net 2 moet jy .CopyTo() metode gebruik op jou BindingList<T>

Ek het hierdie post verander sedert ek opgemerk jy dit tagged with .net2.0. Jy kan 'n lys te gebruik, aangesien dit 'n metode ToArray ().

public T[] ToArray<T>(BindingList<T> bindingList) {
    if (bindingList == null)
        return new T[0];

    var list = new List<T>(bindingList);
    return list.ToArray();
}

Let wel: Dit is inderdaad 'n minder performante oplossing as die CopyTo oplossing wat ander lede het getoon. Gebruik hul oplossing in plaas daarvan, hierdie een skep twee skikkings, die gevolg en een interne om die instansie Lys.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top