запрос объекта и удаление скобок в дротике, трепетании - PullRequest
0 голосов
/ 25 февраля 2020

Hello? Я создаю приложение, используя шаблон провайдера флаттера. И я создал процесс для запроса значений внутри объекта. У меня также есть данные в файле модели моей модели.

Проверьте код ниже.

List<Device> _devices = [
    Device(one: 'apple', two: 'iphone'),
    Device(one: 'samsung', two: 'galaxy')
];


String Query(String value) {
    return _media.where((medium) => medium.one == value)
                    .map((medium) => (medium.two)).toString();

Query("apple")

Так что, когда я вызываю эту функцию, я ожидаю, что будет возвращено iphone. Но результаты приходят в (iphne). На самом деле я знаю почему. В конце концов, возвращаемые данные имеют тип List<Device>. Но я хочу удалить скобки, возвращая только первое значение в запрашиваемом списке (имеется в виду только запрашиваемый список, а не полный список). Другими словами, я хочу получить iphone, а не (iphone). В настоящее время я использую substring, удаляя первое и последнее слово, что, похоже, имеет некоторые ограничения. Есть ли способ убрать скобки в этой логике c?

1 Ответ

0 голосов
/ 25 февраля 2020

У вас есть круглые скобки, потому что вы вызываете .toString() в списке:

return _media.where((medium) => medium.one == value)
  .map((medium) => (medium.two))
  .toString();

Чтобы вернуть .two или первый найденный объект, вам просто нужно сделать:

return _media.firstWhere(
  (medium) => medium.one == value, orElse: () => null)?.two;

Возвращает значение .two первого найденного объекта или null, если ничего не найдено.

Do c: Iterable.firstWhere ()

...