数组中的检查值是否存在Flutter dart

时间:2018-09-17 13:50:18

标签: dart flutter

我正在尝试检查状况

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

但无济于事,请分享。

My List = _quantityController[];

itemId是整数

我想检查我的商品ID是否在我的列表数组中...谢谢!

9 个答案:

答案 0 :(得分:14)

<!--script src="jquery-3.2.1.js" type="text/javascript"></script>
    <script src="popper.js" type="text/javascript"></script>
    <script src="bootstrap.js" type="text/javascript"></script-->

Contains method

答案 1 :(得分:8)

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

class DownloadedFile {
 String Url;
 String location;
}

DownloadedFile列表

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

也许有更好的方法/方法。如果有人知道,那就告诉我。 :)

答案 2 :(得分:3)

result = re.search(r" (.*?:.*?):", line).group(1)

方法-Contains中的Iterable确实可以满足您的需求。参见上面的示例。

答案 3 :(得分:2)

这是一个完整的例子

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
}

答案 4 :(得分:2)

检查类对象数组

比 Abdullah Khan 的方法更好的是使用 any 而不是 where,因为 where 可以完全扫描阵列。当它找到一个时,任何停止。

class DownloadedFile {
 String Url;
 String location;
}

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

答案 5 :(得分:1)

这是我的情况 我有一个这样的清单 我在列表中寻找特定的 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;
      }

这样我就得到了lookingForUUID

希望对某人有所帮助

答案 6 :(得分:0)

对我有用,这是我的代码:

List<int> _itemController = [16,18];
int itemId = 16;

if(_itemController.contains(itemId)){
  print("True")
}else{
print("false");
}

答案 7 :(得分:0)

可以使用 flutter 提供的方法找到数组中键的存在:containsKey

可以这样使用

list.containsKey(key_you_are_looking_for)

结果是布尔值。

答案 8 :(得分:0)

其他答案未提及的解决方案: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

它还允许您搜索索引。使用 contains,可以这样做:

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

使用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