如何从Dart中的类列表中检索属性?

时间:2017-12-21 02:08:43

标签: list class dart element flutter

我在这里创建了一个包含4个元素的自定义类...

class Top {
  String videoId;
  int rank;
  String title;
  String imageString;

  Top({this.videoId, this.rank, this.title, this.imageString});
}

我正在检索一些Firebase项目以填充这些元素..

var top = new Top(videoId: items['vidId'], rank: items['Value'],
title: items['vidTitle'], imageString: items['vidImage']);

然后我将它们添加到Type of Type" Top"为了根据" rank" ...

对Class值进行排序
List<Top> videos = new List();
videos..sort((a, b) => a.rank.compareTo(b.rank));
videos.add(top);

但是,打印videos会记录下来......

[Instance of 'Top', Instance of 'Top', Instance of 'Top', Instance of 'Top', Instance of 'Top', Instance of 'Top', Instance of 'Top', Instance of 'Top']

我不确定它是否因为它在列表中。我怎样才能使用&#34; Top&#34;视频中的属性值?例如,当我查询top.rank时,我得到了这个......

[14, 12, 11, 10, 10, 6, 5, 1]

1 个答案:

答案 0 :(得分:4)

使用[]运算符传递元素的索引来获取列表的属性。

如果您想在列表Top中检索第三个videos,则可以像

一样访问它
videos[3]

如果您想要检索列表rank中第三个Top的属性videos,则可以像

一样访问它
videos[3].rank

如果您希望print语句显示列表项,请更改您的类以覆盖toString方法,例如

class Top {
  String videoId;
  int rank;
  String title;
  String imageString;

 Top({this.videoId, this.rank, this.title, this.imageString});

 @override
 String toString(){
     return "{videoId: $videoId, rank: $rank, title: $title, imageString: $imageString}";
 }
}

希望有所帮助!