如何检查 QList 中是否存在值?

how to check if a value exist in QList?

我有一个 class 来保存客户的 ID 和他的名字。保存后我将对象插入 QList 并在 table.

上查看它们

我需要的:

我需要检查客户是否已添加到 table。

我的做法:

我正在尝试使用客户 ID 搜索列表,如果找到它,我想更新他的记录,否则添加一个新记录。

代码应如下所示。

bool customerExist = customersList.contains(customerID);

if (!customerExist) 
{
    customersList.append(customer)
}

您可以通过以下方式在列表中搜索:

auto iterator = std::find_if(
  customersList.begin(), customersList.end(),
  [](MyObject x) { return x.myproperty() == customerID; }
);
if (iterator != customersList.end())

如果您需要定期通过客户 ID 访问您的数据,我建议使用 QMap<int, Customer*>。 (使用您的客户 ID 类型作为键)

如果客户数量越来越多,使用 QMap 会更快。

然后你可以这样做::

if (!myMap.contains(customerID))
{
    myMap.insert(customerID, customer);
}