Insert element at the beginning of the list in dart

ListFlutterDartInsert

List Problem Overview


I am just creating a simple ToDo App in Flutter. I am managing all the todo tasks on the list. I want to add any new todo tasks at the beginning of the list. I am able to use this workaround kind of thing to achieve that. Is there any better way to do this?

void _addTodoInList(BuildContext context){
    String val = _textFieldController.text;

    final newTodo = {
      "title": val,
      "id": Uuid().v4(),
      "done": false
    };

    final copiedTodos = List.from(_todos);

    _todos.removeRange(0, _todos.length);
    setState(() {
      _todos.addAll([newTodo, ...copiedTodos]);
    });

    Navigator.pop(context);
  }

List Solutions


Solution 1 - List

Use insert() method of List to add the item, here the index would be 0 to add it in the beginning. Example:

List<String> list = ["B", "C", "D"];
list.insert(0, "A"); // at index 0 we are adding A
// list now becomes ["A", "B", "C", "D"]

Solution 2 - List

Use

List.insert(index, value);

Solution 3 - List

I would like to add another way to attach element at the start of a list like this

 var list=[1,2,3];
 var a=0;
 list=[a,...list];
 print(list);

//prints [0, 1, 2, 3]

Solution 4 - List

The other answers are good, but now that Dart has something very similar to Python's list comprehension I'd like to note it.

// Given
List<int> list = [2, 3, 4];
list = [
  1,
  for (int item in list) item,
];

or

list = [
  1,
  ...list,
];

results in [1, 2, 3, 4]

Solution 5 - List

Adding a new item to the beginnig and ending of the list:

List<String> myList = ["You", "Can", "Do", "It"];
myList.insert(0, "Sure"); // adding a new item to the beginning

// new list is: ["Sure", "You", "Can", "Do", "It"];

lastItemIndex = myList.length;

myList.insert(lastItemIndex, "Too"); // adding a new item to the ending
// new list is: ["You", "Can", "Do", "It", "Too"];

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRopali MunshiView Question on Stackoverflow
Solution 1 - ListCopsOnRoadView Answer on Stackoverflow
Solution 2 - ListAbdelrahman LotfyView Answer on Stackoverflow
Solution 3 - ListNikhil BijuView Answer on Stackoverflow
Solution 4 - ListnategurutechView Answer on Stackoverflow
Solution 5 - ListElmarView Answer on Stackoverflow