通过文本字符串从QList <myobject>返回项目

时间:2017-11-09 14:26:15

标签: c++ qt qlist

我需要在我的移动应用程序中查找。所以我就是这个对象:

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中进行查询并从列表中返回多个项目。

由于

1 个答案:

答案 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);
    }
}