【问题标题】:Create Lists from List based on Matching Object Properties根据匹配的对象属性从列表创建列表
【发布时间】:2019-12-13 11:27:55
【问题描述】:

我有一个包含多个属性的对象列表。我希望将列表分成几个列表,这些列表由具有相同子属性的对象组成。

这是一个假设的例子,假设我有一个Cars 的列表。每个Car 都有属性:idmanufacturerIdcolor

我想为具有匹配manufacturerId 属性的人创建Cars 列表。

我尝试在list.forEach 中使用list.where 来创建新的子列表,但是我得到了重复的列表,因为当我比较的属性(A)与另一个属性(B)匹配时,我得到另一个子列表列出时间:

B = A。

【问题讨论】:

    标签: list flutter dart


    【解决方案1】:

    你可以从package:collection使用groupBy

    var carsByManufacturer = groupBy(cars, (car) => car.manufacturerId);
    

    这将创建一个Map,其中键是manufacturerID,值是该制造商的汽车列表。

    那就做吧,

    for (final manufacturerEntry in carsByManufacturer) {
          final key = manufacturerEntry.key;
          final value = manufacturerEntry.value;
          final listOfCarsFromSameManufactuer = List.from(entry.value);
          ...
    }
    

    您现在将拥有名为:listOfCarsFromSameManufactuer 的列表。

    【讨论】:

      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 2019-04-23
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多