对象查询并删除飞镖中的括号,颤振

object query and remove parentheses in dart, flutter

喂?我正在使用 flutter 提供者模式构建一个应用程序。并且我创建了一个进程来查询对象内部的值。我的模型飞镖文件中也有数据。

检查下面的代码。

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 删除第一个和最后一个词,这似乎有一些限制。有什么方法可以删除该逻辑中的括号吗?

你有括号是因为你在列表中调用 .toString():

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

到return只是.two或第一个找到的对象,你只需要做:

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

这将 return 第一个找到的对象的 .two 的值或 null 如果没有找到。

文档:Iterable.firstWhere()