Flutter 如何在省道颤振中转换动态列表
任何关于如何在dart中解决此问题的帮助都将非常有用。 我正在解析一个csv文件,它返回一个动态列表列表Flutter 如何在省道颤振中转换动态列表,flutter,dart,Flutter,Dart,任何关于如何在dart中解决此问题的帮助都将非常有用。 我正在解析一个csv文件,它返回一个动态列表列表 List<List<dynamic>> stores = [ // id - Store - Store Address - Invoice reference - invoice amount - Due Date ['C000015', 'PAULS', '1ST STREET STORE', 'XT1016165', -3230.19, 08/05/2
List<List<dynamic>> stores = [
// id - Store - Store Address - Invoice reference - invoice amount - Due Date
['C000015', 'PAULS', '1ST STREET STORE', 'XT1016165', -3230.19, 08/05/2021],
['C000015', 'PAULS', '1ST STREET STORE', 'XT1016167', -2782.5, 08/05/2021],
['C000015', 'PAULS', '53TH AVENUE STORE', 'XT1016046', -1856.51, 02/05/2021],
['C000015', 'PAULS', '53TH AVENUE STORE', 'XT1016164', -3230.19, 08/05/2021],
['C000066', 'SAPHYR', '124TH ST STORE', 'XT1016165', -3230.19, 08/05/2021],
['C000066', 'SAPHYR', '124TH ST STORE', 'XT1016167', -2782.5, 08/05/2021],
['C000066', 'SAPHYR', 'STORE 73', 'XT1016046', -1856.51, 02/05/2021],
['C000066', 'SAPHYR', 'STORE 73', 'XT1016164', -3230.19, 08/05/2021],
['C000066', 'SAPHYR', 'STORE 73', 'XT1016164', -3310.19, 08/05/2021],
];
列出存储=[
//id-门店-门店地址-发票参考-发票金额-到期日期
[C000015'、'PAULS'、'1ST STREET STORE'、'XT1016165'、-3230.1192021年5月8日],
[C000015'、'PAULS'、'1ST STREET STORE'、'XT1016167'、-2782.52021年5月8日],
[C000015'、'PAULS'、'53大道商店'、'XT1016046'、-1856.512021年5月2日],
[C000015'、'PAULS'、'53大道商店'、'XT1016164'、-3230.1192021年5月8日],
['C000066','SAPHYR','124街商店','XT1016165',-3230.1192021年5月8日],
['C000066'、'SAPHYR'、'124街商店'、'XT1016167'、-2782.52021年5月8日],
['C000066','SAPHYR','Store73','XT1016046',-1856.512021年5月2日],
['C000066','SAPHYR','STORE 73','XT1016164',-3230.19,08/05/2021],
['C000066','SAPHYR','STORE 73','XT1016164',-3310.19,08/05/2021],
];
我如何解析上面的列表以得到下面的结果,因为我知道有一个很大的商店列表。
其想法是将每个共享相同id的商店合并到一个新列表中
List<dynamic> PAULS = [
// id - Store - Store Address - Invoice reference - invoice amount - Due Date
['C000015', 'PAULS', '1ST STREET STORE', 'XT1016165', -3230.19, 08/05/2021],
['C000015', 'PAULS', '1ST STREET STORE', 'XT1016167', -2782.5, 08/05/2021],
['C000015', 'PAULS', '53TH AVENUE STORE', 'XT1016046', -1856.51, 02/05/2021],
];
List<dynamic> SAPHYR = [
// id - Store - Store Address - Invoice reference - invoice amount - Due Date
['C000066', 'SAPHYR', '124TH ST STORE', 'XT1016165', -3230.19, 08/05/2021],
['C000066', 'SAPHYR', '124TH ST STORE', 'XT1016167', -2782.5, 08/05/2021],
['C000066', 'SAPHYR', 'STORE 73', 'XT1016046', -1856.51, 02/05/2021],
['C000066', 'SAPHYR', 'STORE 73', 'XT1016164', -3230.19, 08/05/2021],
['C000066', 'SAPHYR', 'STORE 73', 'XT1016164', -3310.19, 08/05/2021],
];
List PAULS=[
//id-门店-门店地址-发票参考-发票金额-到期日期
[C000015'、'PAULS'、'1ST STREET STORE'、'XT1016165'、-3230.1192021年5月8日],
[C000015'、'PAULS'、'1ST STREET STORE'、'XT1016167'、-2782.52021年5月8日],
[C000015'、'PAULS'、'53大道商店'、'XT1016046'、-1856.512021年5月2日],
];
列表SAPHYR=[
//id-门店-门店地址-发票参考-发票金额-到期日期
['C000066','SAPHYR','124街商店','XT1016165',-3230.1192021年5月8日],
['C000066'、'SAPHYR'、'124街商店'、'XT1016167'、-2782.52021年5月8日],
['C000066','SAPHYR','Store73','XT1016046',-1856.512021年5月2日],
['C000066','SAPHYR','STORE 73','XT1016164',-3230.19,08/05/2021],
['C000066','SAPHYR','STORE 73','XT1016164',-3310.19,08/05/2021],
];
您可以使用以下方法:
Map groupBy(列出存储){
return stores.fold({},(map,element){
return map..putIfAbsent(元素[1],()=>[])。add(元素);
});
}
像这样使用它:
列出存储=[
[C000015'、'PAULS'、'1ST STREET STORE'、'XT1016165'、-3230.1192021年5月8日],
[C000015'、'PAULS'、'1ST STREET STORE'、'XT1016167'、-2782.52021年5月8日],
[C000015'、'PAULS'、'53大道商店'、'XT1016046'、-1856.512021年5月2日],
[C000015'、'PAULS'、'53大道商店'、'XT1016164'、-3230.1192021年5月8日],
['C000066','SAPHYR','124街商店','XT1016165',-3230.1192021年5月8日],
['C000066'、'SAPHYR'、'124街商店'、'XT1016167'、-2782.52021年5月8日],
['C000066','SAPHYR','Store73','XT1016046',-1856.512021年5月2日],
['C000066','SAPHYR','STORE 73','XT1016164',-3230.19,08/05/2021],
['C000066','SAPHYR','STORE 73','XT1016164',-3310.19,08/05/2021],
];
打印(分组(门店));
输出是一个映射,其中哪个键是存储列表中的存储名称及其值
{
"PAULS": [
["C000015", "PAULS", "1ST STREET STORE", "XT1016165", -3230.19, "08/05/2021"],
["C000015", "PAULS", "1ST STREET STORE", "XT1016167", -2782.5, "08/05/2021"],
["C000015", "PAULS", "53TH AVENUE STORE", "XT1016046", -1856.51, "02/05/2021"],
["C000015", "PAULS", "53TH AVENUE STORE", "XT1016164", -3230.19, "08/05/2021"]
],
"SAPHYR": [
["C000066", "SAPHYR", "124TH ST STORE", "XT1016165", -3230.19, "08/05/2021"],
["C000066", "SAPHYR", "124TH ST STORE", "XT1016167", -2782.5, "08/05/2021"],
["C000066", "SAPHYR", "STORE 73", "XT1016046", -1856.51, "02/05/2021"],
["C000066", "SAPHYR", "STORE 73", "XT1016164", -3230.19, "08/05/2021"],
["C000066", "SAPHYR", "STORE 73", "XT1016164", -3310.19, "08/05/2021"],
]
}
List PAULS=stores.where((数据)=>data[1]==“PAULS”).toList()
但是如何在没有硬代码的情况下动态地完成它?这里有200个Rowstory,我已经添加了一个答案。看看这是否解决了你的问题。