在包含特定名称的列表中显示项目-flutter

时间:2019-05-08 04:20:32

标签: list dart flutter contains

在此列表中,我要显示包含此特定名称的所有项目。

我的列表项:['US','SG','US']

print(list.contains("US"));

使用.contains()会返回true或false,但不会返回包含该字符串的字符串列表。我只想从列表中提取具有“ US”的项目。在这种情况下,有2个。请帮忙!

3 个答案:

答案 0 :(得分:2)

您可以尝试通过以下方式进行操作-

List<String> myList = ['US', 'SG', 'US'];
print(myList.where((item) => item.contains("US")));

您还可以通过以下方式直接在Text小部件内显示它-

Text(
   myList.where((item) => item.contains("US")).join(" "),
   //The join function joins the elements of the Iterable into a single string with the separator provided as an argument.
),

希望这会有所帮助!

更新:

要将每个单词分别显示为列表,可以按以下方式在Column内显示它们-

Column(
  children: myList.map((value) {
    if(value.contains("US")){
      return Text(value,);
    } else {
      return Container();
      //Return an empty Container for non-matching case
    }
  }).toList(),
)

如果您希望它可以滚动,可以在ListView内而不是Column内使用同一东西。

答案 1 :(得分:0)

  

如果您使用的是“ list.contains”。它将仅显示列表是否存在,如果要打印值,则必须使用:

var fruits = [‘banana’, ‘pineapple’, ‘watermelon’];fruits.forEach((fruit) => print(fruit)); // => banana pineapple watermelon

如果您只想打印香蕉,则可以使用

var fruits = [‘banana’, ‘pineapple’, ‘watermelon’];fruits.(fruit) => print(fruit[0]); // => banana

答案 2 :(得分:0)

像这样吗?

  var myList = ['US', 'SG', 'US'];
  myList.forEach((w){
    if(w == "US")
      print(w);
  });

显示:

class SO extends StatelessWidget {
  var myList = ['US', 'SG', 'US'];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisSize: MainAxisSize.min,
        children: myList.where((w) => w == "US").map((w) => Text(w)).toList(),
      ),
    );
  }
}

或者对于单行显示使用Text代替上面提到的Column小部件

Text(myList.where((w) => w.contains("US")).join(" "))