Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 对象查询并删除dart、FLATTER中的括号_List_Flutter_Dart_Where Clause_Flutter Provider - Fatal编程技术网

List 对象查询并删除dart、FLATTER中的括号

List 对象查询并删除dart、FLATTER中的括号,list,flutter,dart,where-clause,flutter-provider,List,Flutter,Dart,Where Clause,Flutter Provider,喂?我正在使用颤振提供者模式构建一个应用程序。我创建了一个查询值的过程​​在对象内部。我的模型dart文件中也有数据 检查下面的代码 List<Device> _devices = [ Device(one: 'apple', two: 'iphone'), Device(one: 'samsung', two: 'galaxy') ]; String Query(String value) { return _media.where((medium) =

喂?我正在使用颤振提供者模式构建一个应用程序。我创建了一个查询值的过程​​在对象内部。我的模型dart文件中也有数据

检查下面的代码

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")
List\u设备=[
设备(一个是“苹果”,两个是“iphone”),
设备(一个“三星”,两个“银河”)
];
字符串查询(字符串值){
返回_media.where((media)=>media.one==值)
.map((medium)=>(medium.two)).toString();
查询(“苹果”)

因此,当我调用该函数时,我希望返回
iphone
。但是结果是
(iphone)
。事实上我知道原因。毕竟,返回的数据是
列表类型。但我想要的是通过只返回查询列表中的第一个值(意味着只返回查询列表,而不是完整列表)来删除括号。换句话说,我想接收
iphone
,而不是
(iphone)
。目前,我正在使用
子字符串
删除第一个和最后一个单词,这似乎有一些限制。有没有办法删除该逻辑中的括号?

您有括号,因为您正在调用列表中的
.toString()

return\u media.where((media)=>media.one==value)
.map((中)=>(中二))
.toString();
要仅返回
.two
或第一个找到的对象,只需执行以下操作:

return\u media.firstWhere(
(medium)=>medium.one==value,或else:()=>null)?.two;
这将返回第一个找到的对象的
.two
值,如果没有找到,则返回
null


Doc:

谢谢。firstWhere似乎只接受一个参数。我尝试删除第二个参数,但只得到--Bad state:无元素--error.issue,通过更改…
返回(u media.firstWhere((media)=>media.one==value,或lse:()=>null)?。二;