将对象添加到BindingList中的BindingList

Ins*_*arm 5 c# linq list

我有一个活动的绑定列表,每个活动都有一个BuyOrders的绑定列表

bindingListActivty.Select(k => k._dataGridViewId == 1);
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,我可以选择活动,但我无法访问活动内的任何方法.如何在不创建绑定列表的新实例的情况下访问该方法?

我认为这样可行,但不行

bindingListActivty.Select(k => k._dataGridViewId == 1).addBuyOrders(new BuyOrders());
Run Code Online (Sandbox Code Playgroud)

Jas*_*own 5

选择返回an IEnumerable<T>,这将没有您的addBuyOrders方法.您需要或者使用一个foreach或者你可以使用FirstOrDefault一个Where子句,以获得一个公开方法的各个对象.

例如:

的foreach:

var activities = bindingListActivty.Select(k => k._dataGridViewId == 1);
foreach(var a in activities)
{
    a.addBuyOrders(new BuyOrders());
}
Run Code Online (Sandbox Code Playgroud)

FirstOrDefault(根据你的where子句,这可能更有意义):

var activity = bindingListActivty.Where(k => k._dataGridViewId == 1).FirstOrDefault();
if (activity != null)
{
    activity.addBuyOrders(new BuyOrders());
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*tos 3

你可以试试这个:

// Get the activity from bindingListActivity, whose k._dataGridViewId is equal to 1.
var activity = bindingListActivty.SingleOrDefault(k => k._dataGridViewId == 1);

// If the activity has been found and the a new BuyOrders object.
if(activity!=null)
    activity.addBuyOrders(new BuyOrders());
Run Code Online (Sandbox Code Playgroud)