在 List 中创建 List 的第一个元素 - Flutter、Dart

Posted

技术标签:

【中文标题】在 List 中创建 List 的第一个元素 - Flutter、Dart【英文标题】:Create first Element of List in List - Flutter, Dart 【发布时间】:2020-12-18 00:42:39 【问题描述】:

我在一个列表里面有一个列表,两个都是自定义列表

类价目表

class Pricelist
      String example;
      List<Categories> categoriesList = []


      Pricelist(this.example, this.categoriesList)



类分类

class Categories
      String name;

      Categories(this.name)

添加一个新的价格表非常简单,但是为了添加一个新的 categoriesList 我在 Pricelist 类中创建了这个方法

addCategoryWithParameters(String givenCategoryName) 

        categoriesList.add(Categories(name: givenCategoryName));

调用这个方法其实很简单,只需要Pricelist[i].addCategoryWithParameters("Whatever i want")

直到这里实际上一切正常。

我的问题是在列表为空时添加一个新的 categoriesList。

我已经尝试过使用里面已经有元素的 categoriesList 并且它总是运行良好,但是对于一个空列表它只是返回一个错误

我还能用什么来将第一个元素添加到列表中的列表而不是 add()

感谢您的帮助!

【问题讨论】:

【参考方案1】:

解决方案是您需要在同一个类中初始化和管理单个对象数据,这将消除很多混乱。 使用空白类别列表初始化价目表。并使用 Pricelist addCategories 中的方法添加类别。

void main() 
 List<Pricelist> pList = [];
 pList.add(Pricelist(example: 'Example',categoriesList: [])); //initialize 
 Pricelist[0] with empty categoriesList
 print(pList[0].categoriesList.toString());
 pList[0].addCategories('My new cat'); //add categoriesList in Pricelist[0]
 print(pList[0].categoriesList.toString());


class Pricelist
  String example;
  List<Categories> categoriesList = [];
  Pricelist(this.example, this.categoriesList);


  void addCategories(String _categories)
    categoriesList.add(Categories(name:_categories));
  


class Categories
  String name;
  Categories(this.name);
 

【讨论】:

【参考方案2】:
List<Categories> categoriesList = Categories(name: 'some Name';

我希望这可以帮助:)

【讨论】:

以上是关于在 List 中创建 List 的第一个元素 - Flutter、Dart的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中创建二维列表

基本数据类型

为啥 toList() 在 Dart 中创建一个 List<dynamic>?

在python中创建配对元素列表

Dynamodb:使用CreateTable在AttributeType Map,List,JSON中创建一个表

如何在 C# 中创建 List<int> 数组?