Home > Enterprise >  Dart find string value in a list using contains
Dart find string value in a list using contains

Time:04-27

I have a list of numbers like below -

List contacts = [14169877890, 17781231234, 14161231234];

Now I want to find if one of the above list element would contain the below string value -

String value = '4169877890';

I have used list.any to do the search, but the below print statement inside the if condition is not printing anything.

if (contacts.any((e) => e.contains(value))) {
     print(contacts[0]);
}

I am expecting it to print out the first element of the contacts list as it partially contains the string value.

What is it I am doing wrong here?

CodePudding user response:

Not sure if contacts is an integer and value is a string on purpose or mistake, but this works in dart pad if you convert it to string:

if (contacts.any((e) => e.toString().contains(value))) {
     print(contacts[0]);
}

DartPad Link.

CodePudding user response:

contacts isn't a List<String>, so your any search can't be true, you need turn element of contracts to string to able to use contains.

void main() {
  var contacts = [14169877890, 17781231234, 14161231234];
  print(contacts.runtimeType);
  var value = '4169877890';
  print(value.runtimeType);
  var haveAnyValid = contacts.any((element) {
    return "$element".contains(value);
  });
  print(haveAnyValid);
  
  // result

  // JSArray<int>
  // String
  // true
}
  • Related