Home > Mobile >  how to make Lis<List> different length inside list
how to make Lis<List> different length inside list

Time:01-11

trying to make list inside list if

List<String> dataList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10' , '11', '12', '13', '14', '15', '16', '17', '18' , '19', '20', '21', '22'];
List<int> dataListLength = [5 , 7, 10];
List<List<String>> listList = [];

try to show listList[0] looks like ['1', '2', '3', '4', '5'], listList[1] looks like ['6', '7', '8', '9', '10' , '11', '12'], listList[2] looks like ['13', '14', '15', '16', '17', '18' , '19', '20', '21', '22'] like this????

CodePudding user response:

Try this

List<String> dataList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10' , '11', '12', '13', '14', '15', '16', '17', '18' , '19', '20', '21', '22'];
List<int> dataListLength = [5 , 7, 10];
List<List<String>> listList = [];
  int start = 0;
  for(var i in dataListLength){
    List<String> temp = [];
    for(int j=start; j<i start; j  ){
      temp.add(dataList[j]);
    }
    listList.add(temp);
    start  = i;
  }
  print(listList);

result

[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19, 20, 21, 22]]

CodePudding user response:

try below code.

i think you can use this function List.getRange(int, int)

In Dart, you don't need to specify the list size.

void main() {
  List<String> dataList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10' , '11', '12', '13', '14', '15', '16', '17', '18' , '19', '20', '21', '22'];
  
  List<List> listList = [dataList.getRange(0,4).toList(), 
                     dataList.getRange(5,11).toList(),
                     dataList.getRange(11,21).toList()];
  
  print(listList);
  
}
  •  Tags:  
  • Related