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



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

我的列表项目:['us','sg','us']

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

使用.contains((返回我是一个真或错误,但它不会返回包含它的字符串列表。我只想从列表中提取具有"我们"的项目。在这种情况下,有两个。请帮助!

您可以尝试以下方式尝试 -

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中使用同一件事。

类似的东西?

  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(" "))

如果您使用的是" 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

最新更新