我只是用LINQ弄湿了自己的脚。给定三个项目列表,这是我想出来的只显示ClassB项目列表中引用的ClassA项目,但不在ClassC项目列表中。如何使用LINQ来过滤另一个列表中的项目列表,而不是第三个项目
var uniqueClassAIDsInClassB =
(from classB in classBList
select classB.ClassAID).Distinct();
var uniqueClassAIDsInClassC =
(from classC in classCList
select classC.ClassAID).Distinct();
var classAListFiltered =
from classA in GetClassAList()
where uniqueClassAIDsInClassB.Contains(classA.ID)
!uniqueClassAIDsInClassC.Contains(classA.ID)
select classA;
所得列表被用作下拉列表数据源。什么是更清洁/更好的方式来做到这一点?
+1不同的是不必要的,语句可以合并 – 2010-01-13 20:14:19
哈 - 是啊,没有注意到含混的语句的冗余。感谢您的反馈! – jball 2010-01-13 20:49:43
一些代码评论消除了可读性问题,现在对我来说这绝对看起来更清爽。再次感谢! – jball 2010-01-13 21:18:34