从两个列表中获取筛选列表
本文关键字:列表 获取 筛选 两个 | 更新日期: 2023-09-27 18:00:07
我有一个列表框,我的所有工厂都加载到其中。我在列表框(1)中也有一个选定的工厂。
列表框右侧所有工厂的绑定代码。
protected void fillWerke()
{
//BindingListPersistable<Liebherr.Hau.Erp.Client> bl = new BindingListPersistable<Liebherr.Hau.Erp.Client>();
AllFactory = new BindingListPersistable<Liebherr.Hau.Erp.Client>();
AllFactory = Manager.LoadClients();
BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode;
BetroffeneWerkeAll.DataBind();
}
我试过的是
protected void fillWerke()
{
//BindingListPersistable<Liebherr.Hau.Erp.Client> bl = new BindingListPersistable<Liebherr.Hau.Erp.Client>();
AllFactory = new BindingListPersistable<Liebherr.Hau.Erp.Client>();
AllFactory = Manager.LoadClients();
var selectedFac;
var filteredFac;
if(SelectedWerke.Items.Count > 0)
{
selectedFac = SelectedWerke.Items;
filteredFac = AllFactory.Except(selectedFac);
}
BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode;
BetroffeneWerkeAll.DataBind();
}
然而,我希望你知道我的意思,对不起我糟糕的英语
尝试而不是:
BetroffeneWerkeAll.DataSource = from allF in AllFactory select allF.ClientCode;
此:
BetroffeneWerkeAll.DataSource = from allF in filteredFac select allF.ClientCode;
当执行Except
时,它返回"除第二个列表中的项目外的输入列表",而不设置第一个列表。
不确定,但在我看来,selectedFac
是ClientCode
的类型,而不是AllFactory
中的项目。如果是这种情况,您应该使用:
var result = AllFactory.Where(item =>
!selectedFac.Any(filteredValue => filteredValue == item.ClientCode)).ToList();