List a = [
AbsentModel(name: "abir", id: 1),
AbsentModel(name: "fahim", id: 2),
AbsentModel(name: "rahim", id: 3),
AbsentModel(name: "akash", id: 4), ]
List b = [
AbsentModel(name: "akash", id: 4),
AbsentModel(name: "fahim", id: 2),
AbsentModel(name: "rahim", id: 3),]
'我需要的输出-列表a和列表b之间的差
结果-
`List c = [ AbsentModel(name: "abir", id: 1),];
我试过toSet(),但它只能给我的结果,如果我做了所有的列表没有模型。就像如果做了简单的id列表,然后它的工作。但不能得到的差异,当我使用模型数据。
2条答案
按热度按时间svujldwt1#
这段代码和其他代码一样可以正常工作。你只需要使用equatable包。
但是,您需要重新定义
AbsentModel
,如下所示:Equatable为您覆盖了
==
和hashCode
,因此您不必浪费时间编写大量的样板代码。cnjp1d6j2#
第一个答案是正确的,但没有考虑到如果偏差值在列表b中,则不会被识别的事实。
这个解决方案类似于上面的解决方案,但是检查
a
到b
以及b
到a
的差异。而且它是作为通用List
的扩展编写的,所以它可以用于所有类型的列表。此外,您不必使用Equatable包(如果您不想这样做),因为您可能会重载
==
运算符: