تحويل BindingList إلى مجموعة من T
سؤال
ما هي أسهل طريقة لتحويل BindingList<T>
إلى T[]
؟
وتحرير: وأنا على 3.0 لهذا المشروع، لذلك لا LINQ
المحلول
حسنا، إذا كان لديك LINQ (C # 3.0 + إما .NET Framework 3.5 أو LINQBridge ) يمكنك استخدام .ToArray()
- على خلاف ذلك، مجرد خلق مجموعة ونسخ البيانات
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
نصائح أخرى
في صافي 2 لديك لاستخدام أسلوب .CopyTo()
على BindingList<T>
بك
ولقد تغير هذا المنصب منذ لقد لاحظت أنك الموسومة هذا مع .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();
}
ملحوظة: هذا هو في الواقع حل أقل performant للمن الحل CopyTo للأن أظهرت الأعضاء الآخرين. استخدام حلها بدلا من ذلك، هذا واحد يخلق اثنين من صفائف، والنتيجة واحدة الداخلي إلى مثيل قائمة.
لا تنتمي إلى StackOverflow