有没有一种方法可以不循环所有IEnumerable来取回对象(继承了BindingList)中的数据?

MyListObject--> Transformed with Linq --> Back the data inside MyListObject


我知道我可以做到.ToList,但它并没有实现我想要的功能。

任何的想法?谢谢 :)

最佳答案

我不确定您的要求到底是什么,尤其是关于ToList不能满足您需求的问题。

不幸的是,BindingList<T>在其构造函数中仅接受IList<T>参数,而不接受IEnumerable<T>

但是,如果您在自定义集合上实现传递构造函数(或者如果它已经具有采用IList<T>的构造函数),则可以执行以下操作:

public class MyListObject<T> : BindingList<T>
{
    public MyListObject() : base() { }
    public MyListObject(IList<T> list) : base(list) { }
}

// ...

MyListObject<int> yourList = new MyListObject<int> { 1, 2, 3, 4, 5 };
yourList = new MyListObject<int>(yourList.Select(s => s * 2).ToList());
// yourList now contains 2, 4, 6, 8, 10

09-13 07:00