当我试图过滤列表时,我得到了非常奇怪的行为。这让我措手不及,因为我在其他语言中已经无数次这样做了,以前从未见过这种行为。
List<Product> getFilteredProducts(String searchTerm){
print('getting filtered products');
List<Product> products = ProductsRepository.loadProducts(Category.all);
print('Search term used: ' + searchTerm);
List<Product> filteredProducts = products.where((product) => (product.name.contains(searchText))).toList();
print(filteredProducts.map((prod) => prod.name));
print(products.map((prod) => prod.name.contains(searchText))); // sanity check
return filteredProducts;
}
I/flutter ( 8401): getting filtered products
I/flutter ( 8401): Search term used: Stella
I/flutter ( 8401): (Vagabond sack, Stella sunglasses, Whitney belt, ..., Sunshirt dress, Fine lines tee)
I/flutter ( 8401): (true, true, true, true, true, true, true, true, true, true, ..., true, true)
class ProductsRepository {
static List<Product> loadProducts(Category category) {
List<Product> allProducts = <Product> [
Product(
category: Category.accessories,
id: 0,
isFeatured: true,
name: 'Vagabond sack',
price: 120,
),
Product(
category: Category.accessories,
id: 1,
isFeatured: true,
name: 'Stella sunglasses',
price: 58,
),
Product(
category: Category.accessories,
id: 2,
isFeatured: false,
name: 'Whitney belt',
price: 35,
),
Product(
category: Category.accessories,
id: 3,
isFeatured: true,
name: 'Garden strand',
price: 98,
),
Product(
category: Category.accessories,
id: 4,
isFeatured: false,
name: 'Strut earrings',
price: 34,
),
Product(
category: Category.accessories,
id: 5,
isFeatured: false,
name: 'Varsity socks',
price: 12,
),
Product(
category: Category.accessories,
id: 6,
isFeatured: false,
name: 'Weave keyring',
price: 16,
),
Product(
category: Category.clothing,
id: 36,
isFeatured: false,
name: 'Sunshirt dress',
price: 58,
),
Product(
category: Category.clothing,
id: 37,
isFeatured: true,
name: 'Fine lines tee',
price: 58,
),
];
if (category == Category.all) {
return allProducts;
} else {
return allProducts.where((Product p) {
return p.category == category;
}).toList();
}
}
}
以下是我的依赖关系:
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
intl: ^0.15.6
cupertino_icons: ^0.1.0
shrine_images: 1.1.1
provider: ^4.0.0
您正在传递SerchTerms
,但使用SearchText
进行筛选。
试试这个:
List<Product> getFilteredProducts(String searchTerm){
print('getting filtered products');
List<Product> products = ProductsRepository.loadProducts(Category.all);
print('Search term used: ' + searchTerm);
List<Product> filteredProducts = products.where((product) => (product.name.contains(searchTerm))).toList();
print(filteredProducts.map((prod) => prod.name));
print(products.map((prod) => prod.name.contains(searchTerm))); // sanity check
return filteredProducts;
}
问题内容: 好的,这是一个棘手的问题。我有一套清单。我想按顺序对集合中的对象进行排序。 想象每个场景都压抑着学校的一堂课。每个集合包含人物对象。人员对象具有名称的字符串值。在遍历并写下来之前,我想按名称排列集合中的人物。 是否有任何使用或类似的方法可以实现此目的? 我确实知道班上2个以上的孩子可能使用相同的名字,但请忽略此 问题答案: A 没有 排序的 概念,因为它是一个集合。 您可以使用按类实现
很抱歉标题太长,但我的问题如下; 我有这些课程; 和 和 如果只有断言它拥有的列表,我会使用以下自定义匹配器;
我正在处理5个自定义对象,需要能够将它们保存(序列化)到文件中,并在以后重新加载它们。所有对象都实现可序列化,我可以单独保存和重新加载它们。 这个程序基本上是在模仿关系数据库,但是我不能使用实际的数据库。 我的潜在问题是,一个或两个对象包含其他对象。从我的测试来看,子对象似乎全部保存在主对象中。 ... 当一个foo1对象被反序列化时,它会正确地重新创建自己,包括任何foo2对象。 然而,我认为f
我有一个对象的arraylist,其中有一个字段“name”,还有一个名称列表。我必须从列表中选择包含任何名称的所有对象。如何在java中最有效地实现这一点。任何代码片段都将受到高度赞赏。 例子: 让类名为 A由id、name、subject等字段组成。 那么让我们假设我有一个列表 所以假设我有第二个列表 因此,我只想从objectsA列表中选择那些名称字段由名称列表中的名称组成的对象,也就是说,
然后是班级选拔: 教材: 因此,我主要创建新用户并将其序列化: 一切都很完美,但如果我这样做: 然后我想序列化对象用户,程序崩溃了。我得到的结果是: JAVA木卫一。NotSerializableException:在java上。木卫一。ObjectOutputStream。java上的WriteObject 0(ObjectOutputStream.java:1183)。木卫一。ObjectOu
我正在尝试有这样的方法签名:public static List FilterList(List collection,String FilterString,String Property=“”) 这样,我可以从任何地方调用这个方法,并传递给它任何列表,它将返回给我一个过滤的列表。