ArrayList过滤器逻辑

时间:2012-12-16 07:48:28

标签: c# asp.net

我有一个arrTotalItems class Operation.Operation的arraylist ID

该类有两个属性,一个是namearraylist arrSelectedItems。 现在我有其他operations,其中包含DataList

的ID

现在我必须将两个operation绑定到DataList的名称。

首先arraylist将绑定到选定的DataList

其他arrTotalItems - arrSelectedItems将绑定到{{1}},即那些不在arrSelectedItems中的操作。

无法找到如何绑定两个列表的逻辑

1 个答案:

答案 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>实例。