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

iro*_*irl 0 contains list dart flutter

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

我的清单项目:['US','SG','US']

print(list.contains("US"));
Run Code Online (Sandbox Code Playgroud)

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

Doc*_*Doc 6

像这样的东西吗?

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

以显示:

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(),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

或用于单行显示使用,Text而不是Column上面提到的小部件

Text(myList.where((w) => w.contains("US")).join(" "))
Run Code Online (Sandbox Code Playgroud)


Sid*_*kar 5

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

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

您还可以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.
),
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

更新:

要将每个单词分别显示为列表,您可以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(),
)
Run Code Online (Sandbox Code Playgroud)

可以在a内使用同一内容,ListView而不是Column您希望它可以滚动。