我已经尝试了相关问题中的多行代码,但它们似乎对我不起作用。
我有两个 List<Square>
小号:
List<Square> List1 = new List<Square> { sq1, sq2, sq3 };
List<Square> List2 = new List<Square> { sq1, sq5, sq7 };
我想从 List2
中删除所有方 block 在 List1
中已经。例如,我尝试了这段代码:
var test2NotInTest1 = List1.Where(l1 => !List2.Any(l2 => l1.Contains(List2)));
来自相关问题,但它根本不起作用。我还是个新手,所以我可能只是打错了。我希望你能帮助我!
最佳答案
这不适合你吗?
var test2NotInTest1 = List2.Except(List1);
如果 Square
是一个 class
(不是 struct
)并且列表元素指向相同的变量,这应该可以工作。否则你需要实现 IEquatable
在您的 Square
类/结构上(或者至少提供正确的 GetHashCode
和 Equals
函数)。
关于c# - Linq 查询我的 List<Square> 以查看一个列表的项目是否在另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530820/