我需要在我的移动应用程序中查找。所以我就是这个对象:
class Category
{
public:
Category();
QString title;
QString description;
};
在应用程序启动时我从json url加载了一些对象并将它们放在QList列表中;
当我点击我的gui上的FIND时,我已经完成了一种更新模型的方法。
void CategoryModel::searchByTextInCategoryList(QString testo)
{
QList<Category> lista = singleton::instance().categoryCompleteList;
auto itObj = std::find_if(lista.begin(), lista.end(), [](Category o) { return o.title == "my searched text"; });
//this not for me
}
如果可能,我需要类似的解决方案:
QList<Category> result = lista.find_all.where(lista.at(index).title == "search text");
存在这种可能性吗?
这种方法对我来说效果不错,因为我需要获取包含相同单词的所有对象。 可以帮帮我吗? 我来自C#,在C#中我使用了Linq,在QT中有类似的linq可以通过文本在Qlist中搜索吗?
简而言之......我需要在QList中进行查询并从列表中返回多个项目。
由于
答案 0 :(得分:0)
一个好老的foreach怎么样?
void CategoryModel::searchByTextInCategoryList(QString testo)
{
QList<Category> lista = singleton::instance().categoryCompleteList;
QList<Category> results;
foreach(Category c, lista) {
if (c.title.contains("my searched text"))
//if (c.title. == "my searched text")
results.append(c);
}
}