Check value in array exists Flutter dart

I am trying to check condition

if (value in List) {
exist
} else {
not exist
}

but nothing to help anyone having an idea then please share.

My List = _quantityController[];

itemId is integer

i want to check my item id exists in my list array or not...Thanks!

185594 次浏览
list.contains(x);

包含方法

List<int> values = [1, 2, 3, 4];
values.contains(1); // true
values.contains(99); // false

方法-糟透了包含完全满足您的需要。

这里有一个完整的例子

void main() {
List<String> fruits = <String>['Apple', 'Banana', 'Mango'];


bool isPresent(String fruitName) {
return fruits.contains(fruitName);
}


print(isPresent('Apple')); // true
print(isPresent('Orange')); // false
}

以上是当前问题的正确答案。但是如果像我这样的人在这里检查 List of Class 对象的值,那么答案就在这里。

class DownloadedFile {
String Url;
String location;
}

下载文件列表

List<DownloadedFile> listOfDownloadedFile = List();
listOfDownloadedFile.add(...);

现在检查这个列表中是否有特定的值

var contain = listOfDownloadedFile.where((element) => element.Url == "your URL link");
if (contain.isEmpty)
//value not exists
else
//value exists

There maybe better way/approach. If someone know, then let me know. :)

检查类对象的数组

比阿卜杜拉汗的方法更好的是使用 任何而不是 where,因为这样可以完全扫描阵列。只要它找到一个就会停下来。

class DownloadedFile {
String Url;
String location;
}


List<DownloadedFile> files = [];
bool exists = files.any((file) => file.Url == "<some_url>");

这是我的案子 我有一个这样的名单 我在列表中寻找特定的 UUID

 // UUID that I am looking for
String lookingForUUID = "111111-9084-4869-b9ac-b28f705ea53b"




// my list of comments
"comments": [
{
"uuid": "111111-9084-4869-b9ac-b28f705ea53b",
"comment": "comment"
},
{
"uuid": "222222-9084-4869-b9ac-b28f705ea53b",
"comment": "like"
}
]

这就是我在列表中迭代的方式

// This is how I iterate
var contain = someDataModel.comments.where((element) => element['uuid'] == lookingForUUID);
if (contain.isEmpty){
_isILike = false;
} else {
_isILike = true;
}

That way I get the lookingForUUID in

希望会帮助别人

其他答案没有提到的一个解决方案是: indexOf

List<int> values = [2, 3, 4, 5, 6, 7];
print(values.indexOf(5) >= 0); // true, 5 is in values
print(values.indexOf(1) >= 0); // false, 1 is not in values

It also lets you search after an index. With contains, one would do:

print(values.sublist(3).contains(6)); // true, 6 is after index 3 in values
print(values.sublist(3).contains(2)); // false, 2 is not after index 3 in values

With indexOf:

print(values.indexOf(6, 3) >= 0); // true, 6 is after index 3 in values
print(values.indexOf(2, 3) >= 0); // false, 2 is not after index 3 in values

如果您正在使用自定义类,那么请确保重写 ==()方法,以便省道可以比较两个对象。

使用此选项检查数据是否在列表中:

mylist.contains(data)

检查 Map 中的特定元素是否包含特定值:

if (myMap.any((item) => item.myKeyName == whatever)) {
...
} else {
...
}