如何在flutter中找到一个包含在任何元素中的列表另一个列表


var firstList= [1,2,3,4,5];
var secondList= [3,5];
// compare result : 3,5
// return true
var firstList= [1,2,3,4,5];
var secondList= [6,7,8];
// compare result : null
// return false

如何比较两个列表中的元素?如果两个列表中存在匹配的数据,则返回true。如果没有匹配,则返回错误的

这将帮助您。。。

var firstList = [2, 2, 2, 3];
var secondList = [3, 3, 3];
var firstListSet = firstList.toSet();
var secondListSet = secondList.toSet();
print(firstListSet.intersection(secondListSet));

有很多方法可以做到这一点,可以使用every()contains()方法来实现这个

我会这样做:

if (secondList.every((item) => firstList.contains(item))) {
return true;
} else {
return false;
}

还有一种快速检查是否正确的方法

var firstList = [2, 2, 2, 3];
var secondList = [3, 3, 3];
check(int value) => firstList.contains(value);
bool res = secondList.any(check); // returns true

下一个解决方案并不完美,但可能对某人有所帮助:

void main() {
var list = ["aa", "bb", "cc"];
for (var el in ['abc', 'aaa', 'bb', 'hmbb', 'afg', 'hhcc']) {
bool isContains = list.any((e) => el.contains(e));
if(isContains) {
print(el);
}
}
}

输出:

aaa
bb
hmbb
hhcc

我发现这个工作

bool bTest2 = lstPlayerIDPieceLocationPointID
.any((element) => lstFoundPoints.contains(element));
print('bTest2 any..contains: $bTest2');

始终查找1个列表中的任何项目是否也在另一个列表中。我不在乎是什么,我只是想知道是否有匹配

测试一个列表是否具有另一个列表的元素的函数

只是跟进Josteve的回答——这会按照问题中的要求返回一个bool,而不是Josteve片段中显示的字符串:

void main() {

var firstList= [1,2,3,4,5];
var secondList= [3,5];
var thirdList= [9,10];

//There IS an intersection

print("Second List: ${isIntersect(secondList, firstList)}");
//There is NO intersection

print("Third List: ${isIntersect(thirdList, firstList)}");

}

bool isIntersect(List listOne, List listTwo) {
return listOne.toSet().intersection(listTwo.toSet()).isNotEmpty;
}

演示也在Dart Pad 上

相关内容

  • 没有找到相关文章

最新更新