Reputation: 513
I'm trying to compare two String list with each other and check if at least the have one exact same string or not ..
For example:
List<String> list1 = ['1','2','3','4'];
List<String> list2 = ['1','5','6','7'];
In this case I will do action cause both have same string which is 1
, and it could be more than one exact same string and the action will be the same.
But if they don't have any similar strings then I will do another action.
How can I do something like this?
Upvotes: 8
Views: 12609
Reputation: 28926
A shorter version:
bool hasCommonElement = list1.any(list2.contains);
Upvotes: 0
Reputation: 7082
You can do it with any()
and contains()
method:
if (list1.any((item) => list2.contains(item))) {
// Lists have at least one common element
} else {
// Lists DON'T have any common element
}
Upvotes: 20
Reputation: 657536
Set
has an intersection
that does that:
list1.toSet().intersection(list2.toSet()).length > 0
Upvotes: 9