質問

BindingList< T> T [] に変換する最も簡単な方法は何ですか?

編集:このプロジェクトでは3.0を使用しているため、LINQはありません。

役に立ちましたか?

解決

まあ、LINQ(C#3.0 + .NET 3.5または LINQBridge がある場合) .ToArray()を使用できます。それ以外の場合は、配列を作成してデータをコピーします。

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

他のヒント

.Net 2では、 BindingList< T>

.CopyTo()メソッドを使用する必要があります

.net2.0でタグ付けされていることに気付いたので、この投稿を変更しました。リストにはToArray()メソッドがあるため、リストを使用できます。

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

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

注:これは実際、他のメンバーが示したCopyToソリューションよりもパフォーマンスの低いソリューションです。代わりにソリューションを使用します。これは、結果とListインスタンスの内部に2つの配列を作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top