我有一个 class Operation.Operation
的数组列表 arrTotalItems
。
该类有两个属性,一个是ID
和name
。
现在我有其他 arraylist arrSelectedItems
,其中包含 operations
现在我必须将两个 DataList
绑定(bind)到 operation
的名称。
第一个 DataList
将绑定(bind)到选定的 arraylist
。
其他 DataList
将绑定(bind)到 arrTotalItems - arrSelectedItems
,即那些不在 arrSelectedItems 中的操作。
无法找到如何绑定(bind)两个列表的逻辑
最佳答案
如果您使用的是 .NET Framework 3.5 或更高版本,LINQ允许您从存储在 arrSelectedItems
中的 ID 进行投影操作与 Select() , 然后使用 Except()计算 arrTotalItems
之间的交集这个投影:
IEnumerable<Operation> totalOps = arrTotalItems.Cast<Operation>();
yourDataList.DataSource = totalOps.Except(arrSelectedItems.Cast<string>().Select(
id => totalOps.Where(op => op.ID == id).FirstOrDefault()));
请注意,您首先必须申请 Cast<T>()
给你的ArrayLists
为了获得 IEnumerable<T>
的实例可以与 LINQ 方法一起使用。
关于c# - ArrayList 过滤逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13899519/