对象查询并删除飞镖中的括号,颤振
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
如果没有找到。
喂?我正在使用 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
如果没有找到。