我有一个arrTotalItems
class Operation.Operation
的arraylist ID
。
该类有两个属性,一个是name
和arraylist arrSelectedItems
。
现在我有其他operations
,其中包含DataList
现在我必须将两个operation
绑定到DataList
的名称。
首先arraylist
将绑定到选定的DataList
。
其他arrTotalItems - arrSelectedItems
将绑定到{{1}},即那些不在arrSelectedItems中的操作。
无法找到如何绑定两个列表的逻辑
答案 0 :(得分:1)
如果您使用的是.NET Framework 3.5或更高版本,LINQ允许您使用Select()从arrSelectedItems
中存储的ID投影操作,然后使用{{3}计算arrTotalItems
与此投影之间的交集:
IEnumerable<Operation> totalOps = arrTotalItems.Cast<Operation>();
yourDataList.DataSource = totalOps.Except(arrSelectedItems.Cast<string>().Select(
id => totalOps.Where(op => op.ID == id).FirstOrDefault()));
请注意,您首先必须将Except()应用于ArrayLists
,以获取可与LINQ方法一起使用的IEnumerable<T>
实例。